XMLドキュメントは、多くの場合、デフォルトの名前空間を使用します。 XPathを使用してそのようなドキュメントをクエリする場合、これらの名前空間を正しく処理することは、正確なノード選択に重要です。 名前空間を指定しないと、空のクエリ結果が発生する可能性があります。
クラスはソリューションを提供します。 適切なXPathクエリを有効にすることができるように、名前空間を定義してプレフィックスに関連付けることができます。 これがC#の実装です:XmlNamespaceManager
<code class="language-csharp">XmlElement el = ...; // Your root XML element XmlNamespaceManager nsmgr = new XmlNamespaceManager(el.OwnerDocument.NameTable); nsmgr.AddNamespace("x", el.OwnerDocument.DocumentElement.NamespaceURI); XmlNodeList nodes = el.SelectNodes("/x:outerelement/x:innerelement", nsmgr);</code>説明:
el
XmlNamespaceManager
を使用して作成されました
NameTable
nsmgr.AddNamespace("x", ...)
:名前空間のプレフィックスを解決するためにel.SelectNodes(...)
nsmgr
このアプローチにより、XPath式がデフォルトの名前空間内のノードを正確にターゲットにし、正しい結果を提供することが保証されます。 /x:outerelement/x:innerelement
を特定のxpath式に置き換えることを忘れないでください以上がC#のデフォルトの名前空間でXPathを使用する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。