Rumah > pembangunan bahagian belakang > C++ > Bagaimana Mengendalikan Ruang Nama dengan Betul dalam XElement Apabila Mencipta Dokumen XML?

Bagaimana Mengendalikan Ruang Nama dengan Betul dalam XElement Apabila Mencipta Dokumen XML?

Susan Sarandon
Lepaskan: 2024-12-28 17:22:10
asal
629 orang telah melayarinya

How to Properly Handle Namespaces in XElement When Creating XML Documents?

Ruang Nama XElement Dijelaskan

Apabila cuba mencipta dokumen XML dengan ruang nama awalan menggunakan XElement, seperti:

<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

anda mungkin menghadapi pengecualian menyatakan bahawa aksara kolon tidak dibenarkan dalam nama. Jawapan komprehensif ini akan memberikan penjelasan terperinci dan penyelesaian untuk menyelesaikan isu ini.

Elemen Ruang Nama dalam XElement

Dalam LINQ ke XML, mencipta elemen ruang nama adalah mudah:

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

Pendekatan ini menjana XML tanpa pengisytiharan ruang nama yang jelas:

<sphinx:docset/>
Salin selepas log masuk

Aliasing ruang Nama

Untuk menjadikan alias berfungsi dengan betul dan mencipta XML dengan pengisytiharan ruang nama yang jelas, ikut langkah 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 menjana XML dengan pengisytiharan ruang nama 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:schema>
  </sphinx:docset>
</container>
Salin selepas log masuk

Ringkasnya, mencipta elemen ruang nama dalam LINQ kepada XML adalah mudah. Dengan mengikut langkah ini, anda boleh mengendalikan pengisytiharan ruang nama dengan berkesan apabila bekerja dengan data XML.

Atas ialah kandungan terperinci Bagaimana Mengendalikan Ruang Nama dengan Betul dalam XElement Apabila Mencipta Dokumen XML?. 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