我需要使用具有不同子节点的公共父节点来获取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());
}
}
有更好的方法吗?
提前致谢。
答案 0 :(得分:2)
这应该可以解决问题;
XDocument doc = XDocument.Load(someXML);
var headerList = doc.Descendants("customer").Elements().Select(x => x.Name);
不一定“更好”,但我觉得它更简洁。