【问题标题】:Counting number of element in xml file计算xml文件中元素的数量
【发布时间】:2015-08-21 13:47:03
【问题描述】:

首先我提到了这篇文章How to get specific element Count in XML or XElement variable,但无法解决我面临的问题,所以我正在写这篇文章。 xml的部分如下所示我想计算modelvariables节点中出现标量变量的元素的数量,如下所示

<ModelVariables>
 <ScalarVariable name="x" valueReference="0" description="the only state"causality="local" variability="continuous" initial="exact">
    <Real start="1"/>
 </ScalarVariable>
 <ScalarVariable name="der(x)" valueReference="1" causality="local" variability="continuous"        initial="calculated">
    <Real derivative="1"/>
 </ScalarVariable>
 <ScalarVariable name="k" valueReference="2" causality="parameter" variability="fixed" initial="exact">
    <Real start="1"/>
 </ScalarVariable>
</ModelVariables>

我已经定义为

XmlDocument doc = new XmlDocument(); doc.Load(@"W:\Prajwal\FMU_EXTRACT\modelDescription.xml");

我已经创建了节点列表

XmlNodeList 节点列表 = (XmlNodeList)doc.DocumentElement.SelectNodes("//ModelVariables/ScalarVariable");

我需要得到标量变量的出现次数

【问题讨论】:

  • nodeList.Count() 不起作用吗?
  • 您也可以将count() 放在XPath 表达式中,如果您实际上不需要ScalarVariable 节点本身:count(//ModelVariables/ScalarVariable)

标签: c# xml linq xpath


【解决方案1】:

你需要Count这里:-

XDocument doc = XDocument.Load(@"W:\Prajwal\FMU_EXTRACT\modelDescription.xml");
int ScalarVariableCount = doc.Root.Element("ModelVariables")
                                  .Elements("ScalarVariable").Count();

【讨论】:

  • ModelVariables 不是你的根节点?顺便说一句,什么错误?
  • ModelVariables 不是根目录
  • 错误是 System.xml.xmlDocument 不包含 Root 的定义
  • 根节点是 fmiDescription 因为 ModelVariables 在那里
  • @Prajwal - 请检查我的更新,它是XDocument,如果你有ModelVariables 作为fmiDescription 的直接子级,那么这将给出正确的结果。
猜你喜欢
  • 2017-12-16
  • 1970-01-01
  • 1970-01-01
  • 2011-08-12
  • 1970-01-01
  • 2018-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多