用于c ++的Poco库,为自定义元素声明名称空间

时间:2012-10-05 15:36:16

标签: c++ poco-libraries

我想通过从头开始构建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声明了两次,我想在“root”元素中声明它。 有没有办法获得下一个代表:

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

0 个答案:

没有答案