我正在尝试使用boost生成xml。目前进展顺利,但是生成的xml需要有命名空间。
因此,与其说是<name>"Harry"</name>
,不如说是<ns1:name>"Harry"</ns1:name>
是否有一种方法可以在不手动添加“ns1”到每一行的情况下,使用boost向XML添加命名空间?
我正在尝试使用boost生成xml。目前进展顺利,但是生成的xml需要有命名空间。
因此,与其说是<name>"Harry"</name>
,不如说是<ns1:name>"Harry"</ns1:name>
是否有一种方法可以在不手动添加“ns1”到每一行的情况下,使用boost向XML添加命名空间?
<?xml version="1.0"?>
library xmlns="http://eric.van-der-vlist.com/ns/library">
...
</library>
即使没有前缀,所有内容都将从该命名空间逻辑地呈现。
现在,boost没有记录如何执行此操作,但您可以访问它:
所以,我成功地得到了我想要的结果。这是我所做的:
我的最外层元素名为“Document”:
ptree& documentnode = pt.add("namespace1:Document", "");
然后为每个命名空间添加了元素标签:
pt.add("Document.<xmlattr>.xmlns:namespace1", "value");
然后在每个元素前面我都要添加"namespace1":
documentnode.add("namespace1:name", "Harry");
输出:
<namespace1:Document xmlns:namespace1=value>
<namespace1:name>Harry</namespace1:name>
</namespace1:Document>
可能不是最好的解决方案,但它符合我的需求。