Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menjana Dokumen XML dengan Nod Awalan menggunakan XElement?
Awalan Ruang Nama XML dalam XElement
Membuat dokumen XML dengan awalan nod boleh mencabar menggunakan XElement. Soalan ini meneroka cara mengendalikan ruang nama awalan apabila menggunakan XElement.
Soalan: Bagaimanakah kita boleh menjana dokumen XML dengan nod awalan seperti contoh ini?
<sphinx:docset> <sphinx:schema> <sphinx:field name="subject"/> <sphinx:field name="content"/> <sphinx:attr name="published" type="timestamp"/> </sphinx:schema> </sphinx:docset>
Pengecualian: Menggunakan XElement("sphinx:docset") baharu melemparkan pengecualian:
Unhandled Exception: System.Xml.XmlException: The ':' character, hexadecimal val ue 0x3A, cannot be included in a name.
Jawapan: Menggunakan LINQ ke XML, kami boleh menambah ruang nama pada elemen dengan mudah.
XNamespace ns = "sphinx"; XElement element = new XElement(ns + "docset");
Untuk menentukan alias seperti dalam contoh, gunakan yang berikut:
XNamespace ns = "http://url/for/sphinx"; XElement element = new XElement("container", new XAttribute(XNamespace.Xmlns + "sphinx", ns), new XElement(ns + "docset", new XElement(ns + "schema"), new XElement(ns + "field", new XAttribute("name", "subject")), new XElement(ns + "field", new XAttribute("name", "content")), new XElement(ns + "attr", new XAttribute("name", "published"), new XAttribute("type", "timestamp"))));
Kod ini akan menghasilkan struktur XML yang diingini:
<container xmlns:sphinx="http://url/for/sphinx"> <sphinx:docset> <sphinx:schema /> <sphinx:field name="subject" /> <sphinx:field name="content" /> <sphinx:attr name="published" type="timestamp" /> </sphinx:docset> </container>
Atas ialah kandungan terperinci Bagaimana untuk Menjana Dokumen XML dengan Nod Awalan menggunakan XElement?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!