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
Lepaskan: 2024-12-30 06:27:11
asal
248 orang telah melayarinya

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>
Salin selepas log masuk

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.
Salin selepas log masuk

Jawapan: Menggunakan LINQ ke XML, kami boleh menambah ruang nama pada elemen dengan mudah.

XNamespace ns = "sphinx";
XElement element = new XElement(ns + "docset");
Salin selepas log masuk

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"))));
Salin selepas log masuk

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>
Salin selepas log masuk

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!

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