-1
<cataloglist>
<catalogentry>
<machinename>PCONE</machinename>
<rolename>userPC</rolename>
<rolename>Admin</rolename>
</catalogentry>
<catalogentry>
<machinename>PCTWO</machinename>
<rolename>userPC</rolename>
<rolename>Admin</rolename>
<rolename>Controller</rolename>
</catalogentry>
</cataloglist>
我的代码在下面抓住机器名称(因为只有一个),但是我可以有不确定数量的角色名称。例如,我想扫描角色名称以查看角色名称“Admin”是否存在。那么,代码正确地标识“Admin”是一个角色名称,并输入if语句,但我试过的所有内容都会打印出空格。如果我删除条件,角色名称按预期输出。如果文本匹配条件,XML只获取元素
using (XmlReader xmlReader = XmlReader.Create(zdPath))
{
xmlReader.MoveToContent();
while(xmlReader.Read())
{
if(xmlReader.IsStartElement())
{
switch (xmlReader.Name.ToLower())
{
case "machinename":
Console.WriteLine(xmlReader.ReadString().Trim());
break;
case "rolename":
if (xmlReader.ReadString() == "Admin")
{
Console.WriteLine(xmlReader.Value) //Whitespace
Console.WriteLine(xmlReader.ReadString());//Whitespace
}
break;
}
}
}
}
我最后的输出端这样看:
PCONE
--blank line--
--blank line--
PCTWO
您应该为此使用XPath或XSLT – 2014-10-30 21:35:57