Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Memilih Nod XML dengan Ruang Nama Menggunakan C#?

Bagaimana untuk Memilih Nod XML dengan Ruang Nama Menggunakan C#?

Linda Hamilton
Lepaskan: 2025-01-07 20:27:41
asal
604 orang telah melayarinya

How to Select XML Nodes with Namespaces Using C#?

Masalah yang dihadapi semasa memilih nod XML dengan ruang nama dalam C#

Pertimbangkan dokumen XML yang mengandungi ruang nama dengan struktur berikut:

<code class="language-xml"><?xml version="1.0" encoding="utf-8"?><project defaulttargets="Build" toolsversion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"><itemgroup><compile include="clsWorker.cs"></compile></itemgroup></project></code>
Salin selepas log masuk

Jika anda cuba mendapatkan SelectSingleNode nod menggunakan kaedah Compile tanpa menyatakan ruang nama, null akan dikembalikan:

<code class="language-csharp">XmlDocument xmldoc = new XmlDocument();
xmldoc.LoadXml(Xml);

XmlNode node = xmldoc.SelectSingleNode("//Compile"); // 返回null</code>
Salin selepas log masuk

Penyelesaian: Gunakan XmlNamespaceManager

Untuk mendapatkan semula nod Compile dengan betul jika elemen akar mempunyai ruang nama, XmlNamespaceManager harus digunakan:

<code class="language-csharp">XmlNamespaceManager ns = new XmlNamespaceManager(xmldoc.NameTable);
ns.AddNamespace("msbld", "http://schemas.microsoft.com/developer/msbuild/2003");
XmlNode node = xmldoc.SelectSingleNode("//msbld:Compile", ns);</code>
Salin selepas log masuk

Dengan menambahkan pengurus ruang nama dan menentukan awalan ruang nama yang betul (dalam kes ini "msbld"), kaedah SelectSingleNode akan berjaya mencari dan mengembalikan nod yang diperlukan.

Atas ialah kandungan terperinci Bagaimana untuk Memilih Nod XML dengan Ruang Nama Menggunakan C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan