ノード プレフィックスを使用した 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 サイトの他の関連記事を参照してください。