如何读取/解析 XML 命名空间别名未知的 XML 文档?XML 文档的结构和名称空间是已知的,但别名不知道。例如
<?xml version="1.0" encoding="utf-8"?>
<Order xmlns:aa="urn:namespace1"
xmlns:bb="urn:namespace2">
<aa:Quantity>1</aa:Quantity>
<bb:Price>9.98</bb:Price>
</Order>
或者
<?xml version="1.0" encoding="utf-8"?>
<Order xmlns:cc="urn:namespace1"
xmlns:dd="urn:namespace2">
<cc:Quantity>1</cc:Quantity>
<dd:Price>9.98</dd:Price>
</Order>
更新:我事先不知道 XML 命名空间别名。他们可以是任何东西。
我需要使用 AddNameSpace 方法为 XmlNamespaceManager 提供命名空间列表和别名,如下所示:
XPathDocument xDoc = new XPathDocument(“Path to my file”);
XPathNavigator xNav = xDoc.CreateNavigator();
XmlNamespaceManager xmlns = new XmlNamespaceManager(xNav.NameTable);
xmlns.AddNamespace("aa", "urn:namespace1");
xmlns.AddNamespace("bb", "urn:namespace2");
但这不是 XML 命名空间不可知论者。我的第二个文档使用 cc 和 dd 作为同一个命名空间的别名。