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:
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);
Dapatkan rujukan kepada elemen akar (XMLElement EL).
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!