menavigasi XML dengan ruang nama lalai di C# menggunakan XPath
Bekerja dengan dokumen XML yang mengandungi ruang nama lalai sering memerlukan pengendalian ekspresi XPath yang teliti untuk memilih nod dengan betul. Kesalahan yang sama adalah menghilangkan awalan ruang nama, yang membawa kepada set hasil kosong.Isu ini diselesaikan dengan secara eksplisit memasukkan ruang nama ke dalam pertanyaan XPath anda. Walaupun
tidak diperlukan dengan ketat, kaedah XPathNavigator
atau SelectNodes
cukup. SelectSingleNode
. Contoh berikut menunjukkan ini: XmlNamespaceManager
<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>
menggunakan XmlNamespaceManager
dari akar dokumen XML. Ia kemudian mendaftarkan ruang nama lalai elemen akar dengan awalan "x". Akhirnya, NameTable
dipanggil dengan ungkapan XPath sekarang termasuk awalan "X", membolehkan pemilihan nod sasaran. Ingatlah untuk menggantikan komen SelectNodes
dengan kod untuk mendapatkan //TODO
anda. XmlElement
Atas ialah kandungan terperinci Bagaimanakah saya boleh menggunakan XPath dengan ruang nama lalai di C# untuk memilih nod?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!