如何计算包含特定值的XML节点数

4

我想知道如何计算包含“ No”值的XML文件中的节点数以及元素总数。

我的元素计数正常工作,但我不确定查找要计数的值的逻辑。

要获取总计数,我正在使用:

    XmlDocument readDoc = new XmlDocument();
    readDoc.Load(MapPath("Results.xml"));
    int count = readDoc.SelectNodes("root/User").Count;
    lblResults.Text = count.ToString();

以下是我的XML文件:
<?xml version="1.0" encoding="iso-8859-1"?>
<root>
  <User>
    <URL>http://www.example.com</URL>
    <JSEnabled>Yes</JSEnabled>
  </User>
  <User>
   <URL>http://www.example.com</URL>
   <JSEnabled>Yes</JSEnabled>
 </User>
 <User>
   <URL>http://www.example.com</URL>
   <JSEnabled>Yes</JSEnabled>
 </User>
 <User>
   <URL>http://www.example.com</URL>
   <JSEnabled>Yes</JSEnabled>
 </User>
 <User>
   <URL>http://www.example.com</URL>
   <JSEnabled>No</JSEnabled>
 </User>

2个回答

7
XmlDocument readDoc = new XmlDocument();
readDoc.Load(MapPath("Results.xml"));
int count = readDoc.SelectNodes("root/User").Count;
lblResults.Text = count.ToString();
int NoCount = readDoc.SelectNodes("JSEnabled[. = \"No\"]").Count;

这是一个很好的参考资料:http://msdn.microsoft.com/en-us/library/ms256086.aspx

该链接提供了有关IT技术的详细信息。请按照链接所述的步骤操作,以获得更多信息。

这让我得到了我所要求的,但在阅读了参考链接之后,我甚至得到了比我最初寻找的更多。非常感谢。 - InsertOldUserIDHere
"NoCount" 应该是一个 XmlNodeList 而不是一个 int。或者,您可以使用 readDoc.SelectNodes("JSEnabled[. = \"No\"]").Count - Brian

1
我正在寻找如何计算XML文件中包含“No”值的节点数量。
在XPath中:
count(/root/User[JSEnabled = 'No'])

以及元素的总数。你已经拥有它了:
count(/root/User)

或者使用表达式选择节点和任何 DOM 方法来计算节点集结果成员。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接