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 名前空間のエイリアスが事前にわかりません。それらは何でもかまいません。
次のように、XmlNamespaceManager に名前空間のリストとエイリアスを AddNameSpace メソッドで指定する必要があります。
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 名前空間にとらわれません。2 番目のドキュメントでは、cc と dd を同じ名前空間のエイリアスとして使用しています。