ホームページ >バックエンド開発 >C++ >C#のデフォルトの名前空間でXPathを使用する方法は?

C#のデフォルトの名前空間でXPathを使用する方法は?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-29 07:42:08651ブラウズ

How to Use XPath with Default Namespaces in C#?

c#

のxpathおよびデフォルトの名前空間を操作します

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>
説明:

  • :XMLドキュメントのルート要素を表します el
  • :ドキュメントの
  • XmlNamespaceManagerを使用して作成されました NameTable
  • :root要素の名前空間URIにマッピングするプレフィックス「x」で名前空間を追加します。 このプレフィックスは、XPath式で使用されます
  • nsmgr.AddNamespace("x", ...):名前空間のプレフィックスを解決するために
  • を使用してXPathクエリを実行します。 Xpath式
  • は、デフォルトの名前空間内の要素を正しく識別します。 el.SelectNodes(...) nsmgrこのアプローチにより、XPath式がデフォルトの名前空間内のノードを正確にターゲットにし、正しい結果を提供することが保証されます。 /x:outerelement/x:innerelementを特定のxpath式に置き換えることを忘れないでください

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

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