繁体   English   中英

如何计算已读入字符串的XML节点

[英]How to count nodes in XML that have been read into a string

我确定该解决方案对于经验丰富的人来说是微不足道的,但对我而言并非如此。 我已经将XML文件读入字符串strSiteList。 这是XML的简化示例:

<siteList>
  <site code="s0000001">
    <nameEn>Edmonton</nameEn>
    <provinceCode>AB</provinceCode>
  </site>
  <site code="s0000002">
    <nameEn>Vancouver</nameEn>
    <provinceCode>BC</provinceCode>
  </site>
</siteList>

如何计算网站出现的次数? 我从这里开始:

XDocument loaded = XDocument.Parse(strSiteList);
int sitesCount = loaded.Nodes().Count(d => "some code that should work...arg...";

但是我不知道这是否是正确的开始方式。

谢谢!

一个特定的网站? 在我看来,这听起来像:

string site = "s0000002";
XDocument loaded = XDocument.Parse(xml);
int sitesCount = loaded.Descendants("site")
                       .Count(x => (string) x.Attribute("code") == site);

对于所有站点,只需:

int sitesCount = loaded.Descendants("site").Count();

您可以使用简单的XPath表达式(需要使用“ System.Xml.XPath”):

XDocument loaded = XDocument.Parse(xml);
int sitesCount = loaded.XPathSelectElements("siteList/site").Count();

假设已正确读取它,则应该可以执行以下操作:

int sitesCount = loaded.Descendants("site").Where(x => x.Attribute("code").Value == "1234").Count();

您也可以这样做:

int sitesCount = loaded.Descendants("site").Count(x => x.Attribute("code").Value == "1234");

如果您要查找所有站点的数量,则可以执行以下操作:

int sitesCount = loaded.Descendants("site").Count();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM