【问题标题】:How to count number of XML nodes that contain specific value如何计算包含特定值的 XML 节点的数量
【发布时间】:2011-01-10 19:58:50
【问题描述】:

我正在寻找如何计算 XML 文件中包含“否”值的节点以及元素总数。

我的元素计数工作正常,但我不确定在 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>

【问题讨论】:

    标签: c# xml xpath


    【解决方案1】:
    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

    【讨论】:

    • 这让我得到了我想要的东西,但是在阅读了那个参考链接之后,我能够得到比我最初寻找的更多的东西。非常感谢
    • NoCount 应该是XmlNodeList 而不是int。或者,您应该使用readDoc.SelectNodes("JSEnabled[. = \"No\"]").Count
    【解决方案2】:

    我正在寻找如何计算 XML 文件中的节点包含 “否”的值

    在 XPath 中:

    count(/root/User[JSEnabled = 'No'])
    

    以及总人数 元素。

    你已经拥有它:

    count(/root/User)
    

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

    【讨论】:

      猜你喜欢
      • 2021-09-29
      • 2017-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-04
      相关资源
      最近更新 更多