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

get grandson text using xml document in c#

我在 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>

而且我希望能够获得一和二的能力

我试过了:

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

问题是 docXml 为空

有什么帮助吗?

试试这个:

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");

如上所述,XDocument 是更好的选择。但是,如果您仍想使用 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
}