看到这个XML:
<CMP>
<OMP3>
<personmenu>
<submenuid>502</submenuid>
<submenuid>503</submenuid>
</personmenu>
<accountsmenu>
<submenuid>517</submenuid>
<submenuid>518</submenuid>
<submenuid>519</submenuid>
</accountsmenu>
<reportsmenu>
<submenuid>522</submenuid>
<submenuid>528</submenuid>
<submenuid>536</submenuid>
</reportsmenu>
</OMP3>
<AMP3>
<admissionmenu>
<submenuid>702</submenuid>
<submenuid>703</submenuid>
</admissionmenu>
</AMP3>
</CMP>
Run Code Online (Sandbox Code Playgroud)
我想动态地从这个xml中获取节点的总数(C#).我该怎么做?任何示例代码?
Dar*_*rov 12
这是一个计算submenuidxml文档中所有节点而不将其加载到内存中的示例:
var nodeCount = 0;
using (var reader = XmlReader.Create("test.xml"))
{
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element &&
reader.Name == "submenuid")
{
nodeCount++;
}
}
}
Console.WriteLine(nodeCount);
Run Code Online (Sandbox Code Playgroud)
或者如果您更喜欢LINQ to XML:
var count = XDocument
.Load("test.xml")
.XPathSelectElements("//submenuid")
.Count();
Run Code Online (Sandbox Code Playgroud)
像这样使用XmlDocument:
XmlDocument xmlD = new XmlDocument();
xmlD.Load(Server.MapPath("sample.xml"));
XmlNodeList xmlNL = xmlD.GetElementsByTagName("tagName");
xmlNL.Count;
Run Code Online (Sandbox Code Playgroud)