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

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

Mary-Kate Olsen
リリース: 2025-01-29 08:17:13
オリジナル
348 人が閲覧しました

How to Use XPath with a Default Namespace in C#?

c#xpathのデフォルトの名前付きスペースを使用

デフォルトの命名スペースを含むXMLドキュメントを処理する場合、C#のXPath選択ノードには課題に遭遇する可能性があります。これは、Xpath式を、ドキュメント内の要素と属性を識別するために、命名空間を明示的に宣言する必要があるためです。

提供された例では、コードはXpathNavigatorを使用して、デフォルトの名前付きスペースを使用してXMLドキュメントからノードを選択しようとします。ただし、名前スペースを指定しない場合、結果はありません。

解決策:

この問題を解決する方法は、XPath式にデフォルトの名前付きスペースを含めることです。これは、XMLNamesPaceManagerを使用して命名スペースプレフィックスをURIに関連付けることで実現できます。以下は、更新されたコードバージョンです この更新後のコードの

ルート要素(XMLELEMENT EL)への参照を取得します。

1

2

3

4

5

XmlElement el = ...; //TODO

XmlNamespaceManager nsmgr = new XmlNamespaceManager(

    el.OwnerDocument.NameTable);

nsmgr.AddNamespace("x", el.OwnerDocument.DocumentElement.NamespaceURI);

var nodes = el.SelectNodes(@"/x:outerelement/x:innerelement", nsmgr);

ログイン後にコピー

XMLNamesPaceManagerを作成して、命名スペースプレフィックスを管理します。

    命名スペースプレフィックス「x」は、ドキュメントルート要素uriの名前空間にマッピングされます。
  • XPath式は、デフォルトの名前のスペースを示す要素名の前のプレフィックス「x」が含まれるようになりました。
  • 指定された命名スペースプレフィックスを使用することにより、XPATH式はXMLドキュメントで必要なノードを正しく識別して選択できます。この方法により、選択プロセスにおける命名スペースの適切な考慮と分析が保証されます。

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

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート