ホームページ > バックエンド開発 > C++ > XElement を使用してプレフィックス付きノードを持つ XML ドキュメントを生成するにはどうすればよいですか?

XElement を使用してプレフィックス付きノードを持つ XML ドキュメントを生成するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-30 06:27:11
オリジナル
249 人が閲覧しました

How to Generate XML Documents with Prefixed Nodes using XElement?

XElement の XML 名前空間プレフィックス

XElement を使用してノード プレフィックスを含む XML ドキュメントを作成するのは難しい場合があります。この質問では、XElement を使用するときに接頭辞付きの名前空間を処理する方法について説明します。

質問: この例のような接頭辞付きのノードを含む XML ドキュメントを生成するにはどうすればよいですか?

<sphinx:docset>
  <sphinx:schema>
    <sphinx:field name="subject"/>
    <sphinx:field name="content"/>
    <sphinx:attr name="published" type="timestamp"/>
 </sphinx:schema>
</sphinx:docset>
ログイン後にコピー

例外: new XElement("sphinx:docset") を使用すると、例外:

Unhandled Exception: System.Xml.XmlException: The ':' character, hexadecimal val
  ue 0x3A, cannot be included in a name.
ログイン後にコピー

回答: LINQ to XML を使用すると、要素に名前空間を簡単に追加できます。

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

例のようにエイリアスを定義するには、次を使用します。以下:

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 までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート