在c#中发现XML子节点
本文关键字:XML 子节点 发现 | 更新日期: 2023-09-27 18:06:01
我需要接受具有共同父节点但具有不同子节点的XML。得到它之后,我需要获取子节点的标记名称,并将这些名称用作标头。在下面的示例中,所有传入的XML将按照如下方式包装:
<customers>
<customer>
...varying child nodes that do not have child nodes themselves
</customer>
</customers>
我发现这是有效的:
List<string> headerList = new List<string>();
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(someXML);
XmlNodeList xnl = xmlDoc.SelectNodes("customers/customer");
foreach (XmlNode xn in xnl)
{
for (int x = 0; x < xn.ChildNodes.Count; x++)
{
headerList.Add(xn.ChildNodes[x].Name.ToString());
}
}
有更好的方法吗?
应该没问题;
XDocument doc = XDocument.Load(someXML);
var headerList = doc.Descendants("customer").Elements().Select(x => x.Name);
不一定"更好",但我想它更简洁一些。