首頁 > 後端開發 > C++ > 使用 XElement 建立 XML 文件時如何正確處理命名空間和前綴?

使用 XElement 建立 XML 文件時如何正確處理命名空間和前綴?

Linda Hamilton
發布: 2024-12-31 11:46:10
原創
532 人瀏覽過

How to Correctly Handle Namespaces and Prefixes When Creating XML Documents with XElement?

XElement 命名空間:綜合指南

使用節點前綴建立XML 文件

使用XElement 建構XML 文件

使用XElement 構造XML 文件時,正確建構XML處理命名空間前綴至關重要。嘗試直接建立帶有前綴的元素,例如 new XElement("sphinx:docset"),將導致異常。

使用命名空間的解決方案

XNamespace ns = "sphinx";
XElement element = new XElement(ns + "docset");
登入後複製

LINQ to XML 為此提供了一個優雅的解決方案:

這種方法將命名空間附加到元素名稱,確保存在所需的前綴。

自訂前綴

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"))));
登入後複製

您也可以自訂前綴以符合您現有的XML 結構:

<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>
登入後複製
此程式碼產生類似於您提供的範例的XML:

以上是使用 XElement 建立 XML 文件時如何正確處理命名空間和前綴?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板