2

この質問は、回答された質問のフォローアップです: XmlDocument.SelectSingleNodeおよびプレフィックス+xmlNamespaceの問題

問題は、将来、受信したxmlの名前空間プレフィックスが警告なしに変更される可能性があることです。そのため、SelectSingleNodeを使用して要素のプレフィックスを省略する方法があるかどうかを知りたいと思います。

(着信xmlのすべてのプレフィックスを削除できることはわかっていますが、コードが提供されている場合は有効な回答と見なされますが、さらに多くの手順が必要になります...)

4

2 に答える 2

6

名前空間URIが変更されない限り、プレフィックス名が変更されてもかまいません。

コードで使用するプレフィックス名とXMLドキュメントのプレフィックス名は、一致している必要はありません。例:

namespaces.AddNamespace("foo", "http://exception.do29.imq.es/xsd");
XmlNode nodemsg = xmldocu.SelectSingleNode("//foo:message", namespaces);
于 2012-02-23T14:24:06.290 に答える
3

xpathで*を使用して省略できます。次に例を示します。

//*[local-name()='ElementName']

質問に基づいて、名前空間を持つXPathselectノード

追加として、このツールはさまざまなxpathをテストするのに非常に役立ちました。... http://xpathvisualizer.codeplex.com/

于 2012-02-23T14:38:50.270 に答える