XML文書を構築していて、一番上に名前空間を宣言しました。私は文字列から作成された要素には、appendChildしたい以下のいくつかの任意のレベルでC#xmlns = ""を使わずに文字列からXmlElementを作成する
<Root xmlns="http://www.omg.org/space/xtce" xmlns:xtce="http://www.omg.org/space/xtce" ...>
。私の目標は、xmlns AT ALLなしの要素を含む文書で終わることです。
これは、私は、最終的な文書に
<SomeElement name="foo" xmlns=""> <SubElement name="bar" /> </SomeElement>
IN-このコード結果gotten-
string someElementStr = "<SomeElement name="foo"><SubElement name="bar" /></SomeElement>";
XmlDocumentFragment node = doc.CreateDocumentFragment();
node.InnerXml = someElementStr;
someXmlNodeWithinDoc.AppendChild(node);
を有する最も近いです。
私は
XmlElement elem = doc.CreateElement("SomeElement", "http://www.omg.org/space/xtce");
elem.SetAttribute("name","foo");
someXmlNodeWithinDoc.AppendChild(elem);
をXMLベース文字列から行く必要はありません、これは私が欲しい、まさに生じたとき、私は別の構文を使用します。
<SomeElement name="foo"> </SomeElement>
私はそれがルートと同じであるため、その文書がのxmlnsを省略するだろう、私の現在のソリューション node.setNamespace("http://www.omg.org/space/xtce")
で何行これを実行したいと思います。
一部の要素がモデルに文字列として格納されている場合、内部で単一の名前空間を使用するドキュメントを作成する慣用方法を教えてもらえますか?
このissueは、解決策がサブ要素を文字列としてのみ提供するという点を除いて(「新規」のすべて)、ほとんど同じです。私は要素全体が必要です。
XML文字列をXmlDocumentにロードし、子ノードを取得して既存のXMLドキュメントに追加できます。 –
LoadXmlで作成したドキュメントから要素を追加しようとしましたが、クロスドキュメントAppendChildが好きではありません。文書全体が正しくない文字列であることを示唆しているなら、私はいくつかの要素しか持っていません。 –