ホームページ >バックエンド開発 >C++ >C#のデフォルトの名前空間でXPathを使用してノードを選択するにはどうすればよいですか?

C#のデフォルトの名前空間でXPathを使用してノードを選択するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-29 08:05:10315ブラウズ

How Can I Use XPath with a Default Namespace in C# to Select Nodes?

XPATH デフォルトの名前空間を含むXMLドキュメントを操作するには、多くの場合、ノードを正しく選択するためにXPath式を慎重に処理する必要があります。 よくある間違いは、名前空間のプレフィックスを省略し、空の結果セットにつながることです。

この問題は、名前空間をXPathクエリに明示的に組み込むことにより解決されます。 厳密には必要ありませんが、

または

メソッドで十分です。

XPathNavigator重要なステップは、SelectNodesを作成することです。 次の例はこれを示しています:SelectSingleNode

このコードスニペットは、XMLドキュメントのルートから

を使用して、最初にXmlNamespaceManagerを初期化します。 次に、接頭辞「x」でルート要素のデフォルトの名前空間を登録します。 最後に、「X」プレフィックスを含むXPath式で

が呼び出され、ターゲットノードの選択が可能になります。
<code class="language-csharp">XmlElement el = ...; //TODO:  Obtain your XmlElement
XmlNamespaceManager nsmgr = new XmlNamespaceManager(el.OwnerDocument.NameTable);
nsmgr.AddNamespace("x", el.OwnerDocument.DocumentElement.NamespaceURI);
var nodes = el.SelectNodes("/x:outerelement/x:innerelement", nsmgr);</code>

以上がC#のデフォルトの名前空間でXPathを使用してノードを選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。