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 08:17:13323semak imbas

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

Gunakan ruang bernama lalai di C#xpath

Apabila memproses dokumen XML yang mengandungi ruang penamaan lalai, nod pemilihan XPath dalam C#mungkin menghadapi cabaran. Ini kerana ekspresi XPath biasanya perlu diisytiharkan secara eksplisit ruang penamaan untuk mengenal pasti unsur -unsur dan sifat dalam dokumen.

Dalam contoh yang disediakan, kod itu cuba menggunakan XPathNavigator untuk memilih nod dari dokumen XML dengan ruang bernama lalai. Walau bagaimanapun, jika anda tidak menentukan ruang nama, anda tidak akan mempunyai sebarang keputusan.

Penyelesaian:

Kaedah menyelesaikan masalah ini adalah mengandungi ruang bernama lalai dalam ekspresi XPath. Ini boleh dicapai dengan menggunakan XmlNamesPaceManager untuk mengaitkan awalan ruang penamaan dengan URI. Berikut adalah versi kod yang dikemas kini:

dalam kod selepas kemas kini ini:

<code class="language-csharp">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);</code>

Dapatkan rujukan kepada elemen akar (XMLElement EL).

    Buat XmlNamesPaceManager untuk menguruskan awalan ruang penamaan.
  • Prefix ruang penamaan "x" dipetakan ke ruang nama Dokumen Root Element URI.
  • XPath Expression Now termasuk awalan "x" sebelum nama elemen, yang menunjukkan ruang nama lalai.
  • Dengan menggunakan awalan ruang penamaan yang ditentukan, ekspresi XPath dapat mengenal pasti dan memilih nod yang diperlukan dalam dokumen XML. Kaedah ini memastikan pertimbangan dan analisis yang betul untuk menamakan ruang dalam proses pemilihan.

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