Rumah >pembangunan bahagian belakang >C++ >Bagaimana cara menggunakan XPath dengan ruang nama lalai di C#?

Bagaimana cara menggunakan XPath dengan ruang nama lalai di C#?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-29 07:42:08651semak imbas

How to Use XPath with Default Namespaces in C#?

bekerja dengan XPath dan ruang nama lalai di C#

Dokumen XML sering menggunakan ruang nama lalai. Apabila menanyakan dokumen tersebut menggunakan XPath, mengendalikan ruang nama ini dengan betul adalah penting untuk pemilihan nod yang tepat. Kegagalan untuk menentukan ruang nama mungkin akan mengakibatkan hasil pertanyaan kosong.

Kelas

menyediakan penyelesaiannya. Ia membolehkan anda menentukan ruang nama dan mengaitkannya dengan awalan, membolehkan pertanyaan XPath yang betul. Inilah pelaksanaan 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>
Penjelasan:

  • : Mewakili elemen akar dokumen XML anda. el
  • : Dibuat menggunakan dokumen XmlNamespaceManager. NameTable
  • : Menambah ruang nama dengan awalan "x," memetakannya ke ruang nama URI unsur akar. Awalan ini akan digunakan dalam ekspresi XPath. nsmgr.AddNamespace("x", ...)
  • : Melaksanakan pertanyaan XPath menggunakan el.SelectNodes(...) untuk menyelesaikan awalan ruang nama. Ekspresi XPATH nsmgr kini mengenal pasti elemen dengan betul dalam ruang nama lalai. /x:outerelement/x:innerelement
Pendekatan ini memastikan bahawa ekspresi XPath anda menyasarkan nod dengan tepat dalam ruang nama lalai, memberikan hasil yang betul. Ingatlah untuk menggantikan

dengan ekspresi XPath khusus anda. /x:outerelement/x:innerelement

Atas ialah kandungan terperinci Bagaimana cara menggunakan XPath dengan ruang nama lalai di C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn