1

我需要使用具有公共父节点但具有不同子节点的 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());
    }
}

有一个更好的方法吗?

提前致谢。

4

1 回答 1

2

这应该可以解决问题;

XDocument doc = XDocument.Load(someXML);
var headerList = doc.Descendants("customer").Elements().Select(x => x.Name);

不一定“更好”,但我想它更简洁一些。

于 2013-03-26T15:19:09.453 回答