2

次のような構文を使用して、DOM ドキュメントをゼロから作成して XML ドキュメントを作成したいと考えています。

AutoPtr<Document> doc = new Document;
AutoPtr<Element> root = doc->createElement("root");
doc->appendChild(root);
AutoPtr<Element> element1 = doc->createElementNS("http://ns1", "ns1:element1");
root->appendChild(element1);
AutoPtr<Element> element2 = doc->createElementNS("http://ns1", "ns1:element2");
root->appendChild(element2);

DOMWriter writer;
writer.setNewLine("\n");
writer.setOptions(XMLWriter::PRETTY_PRINT);
writer.writeNode(std::cout, doc);

しかし、それを書くと、次の結果が得られます。

<root>
   <ns1:element1 xmlns:ns1="http://ns1"/>
   <ns1:element2 xmlns:ns1="http://ns1"/>
</root>

したがって、名前空間 ns1 は 2 回宣言されており、「ルート」要素内で宣言したいと考えています。次の表現を取得する方法はありますか:

<root xmlns:ns1="http://ns1"/>
   <ns1:element1/>
   <ns1:element2/>
</root> 
4

0 に答える 0