【发布时间】:2011-05-02 10:50:49
【问题描述】:
我正在尝试使用 XPath 查询选择 xml 文档的根节点的所有子节点。
我的 xml 文件如下所示:
<?xml version="1.0" encoding="UTF-8" ?>
<root>
<automotive_industry>
<automotive />
<rail_global_services />
</automotive_industry>
</root>
与
<?xml version="1.0" encoding="UTF-8" ?>
<root xmlns="http://www.my_department.my_company.com/project_name">
<automotive_industry>
<automotive />
<rail_global_services />
</automotive_industry>
</root>
选择根节点的C#代码如下:
XmlDocument gazetteDocument = new XmlDocument();
gazetteDocument.Load(xmlFilePath);
XmlNodeList allNodes = gazetteDocument.SelectNodes("root");
此代码工作正常,当根节点没有任何属性时,它会选择根节点的所有子节点,即它适用于第一个 xml 文件,但不适用于第二个 xml 文件,因为第二个文件具有 xmlns 属性。
有谁知道根节点有属性时如何选择根节点的所有子节点??
编辑:
我找到了一个 XPath 查询:/* 这个查询选择根节点,不管它是否有任何属性。一旦选择了根节点,我就可以遍历它的所有子节点。
【问题讨论】:
-
阅读让我觉得“也许 xml 不允许有属性,尤其是在根节点上”...