Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menjana Dokumen XML dengan Nod Awalan menggunakan XElement?

Bagaimana untuk Menjana Dokumen XML dengan Nod Awalan menggunakan XElement?

Barbara Streisand
Barbara Streisandasal
2024-12-30 06:27:11255semak imbas

How to Generate XML Documents with Prefixed Nodes using 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!

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