ホームページ > バックエンド開発 > 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 ドキュメントを構築する場合、名前空間プレフィックスを正しく処理するために重要です。 new XElement("sphinx:docset") など、接頭辞を持つ要素を直接作成しようとすると、例外が発生します。

名前空間を使用した解決策

LINQ to XML は、これに対する洗練されたソリューションを提供します。

XNamespace ns = "sphinx";
XElement element = new XElement(ns + "docset");
ログイン後にコピー

このアプローチでは、名前空間を要素名を入力し、目的のプレフィックスが存在することを確認します。

プレフィックスのカスタマイズ

既存の 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>
ログイン後にコピー

以上がXElement で XML ドキュメントを作成するときに名前空間とプレフィックスを正しく処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート