我想使用XPath查询来选择xml文档的根节点的所有子节点。如何在根节点有属性时选择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");
此代码工作正常,它当根节点没有任何属性时,选择根节点的所有子节点,它适用于第1个xml fi但第二个xml文件不起作用,因为第二个文件具有xmlns属性。
有没有人知道当根节点有属性时如何选择根节点的所有子节点?
编辑: 我发现一个XPath查询:/*
此查询选择根节点不管是否有任何属性或没有。一旦选择了根节点,我就可以遍历其所有的子节点。
[在C#中使用带有默认名称空间的Xpath]的可能的重复(http://stackoverflow.com/questions/585812/using-xpath-with-default-namespace-in-c) – 2011-05-02 17:53:54