简体   繁体   English

在C#中使用xml文档获取孙子文本

[英]get grandson text using xml document in c#

I'm using XmlDocument in C# and I would like to know how to get grandson data of the root? 我在C#中使用XmlDocument,我想知道如何获取根的孙子数据?

<tRoot>
   <One>
   <a>15</a>
   <b>11</b>
   <c>1</c>
   <d>11.35</d>
   <e>0</e>
   <f>289</f>
 </One>
 <Two>
   <a>0</a>
   <b>11</b>
   <c>1</c>
   <d>0.28</d>
   <e>0</e>
   <f>464</f>
</Two>
</tRoot>

and I want the ability to get a of One and also a of Two 而且我想要获得一个“一个”和“两个”的能力

I tried: 我试过了:

var doc = new XmlDocument();
doc.Load(Consts.FileConst);
var docXml = doc["One"];
if (docXml != null)
{
   float valFromXml = float.Parse(docXml["a"].InnerText);
}

The issue is that docXml is null 问题是docXml为空

Any assitance? 有什么帮助吗?

Try this: 尝试这个:

XmlDocument d = new XmlDocument();
d.LoadXml("<tRoot><One><a>15</a><b>11</b><c>1</c><d>11.35</d><e>0</e><f>289</f></One><Two><a>0</a><b>11</b><c>1</c><d>0.28</d><e>0</e><f>464</f></Two></tRoot>");
XmlNodeList itemNodes = d.SelectNodes("//*/a");

As suggested above, XDocument would be a better alternative. 如上所述,XDocument将是更好的选择。 If, however, you still want to use XmlDocument, you can iterate through the children using 但是,如果仍然要使用XmlDocument,则可以使用以下命令遍历子级

var doc = new XmlDocument();
doc.Load(Consts.FileConst);
foreach(XmlNode xmlNode in doc.DocumentElement.ChildNodes) {
  //access a/b/c/d/e using:          
  xmlNode.ChildNodes[0].InnerText; //for a
  xmlNode.ChildNodes[1].InnerText; //for b
}

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

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