以下是XML文件,其中一个节点(即<date>
)被评论。
<?xml version="1.0"?>
<story>
<info>
<author>Abc Xyz</author>
<!--<date>June 2, 2017</date> -->
<keyword>example keyword</keyword>
</info>
</story>
我想要的是使用libxml库从XML文件中完全删除注释的行/节点,它应如下所示:
<?xml version="1.0"?>
<story>
<info>
<author>Abc Xyz</author>
<keyword>example keyword</keyword>
</info>
</story>
我还提到了libxml文档,但这对XML文件中的“comment / s”没有多大帮助。
答案 0 :(得分:1)
我尝试了另一种方式并且有效。看起来使用xmlreader
来修改xml会有所帮助,而不是xmlReadMemory()
,然后在解析后执行以下检查:
if(node->type == XML_COMMENT_NODE){ //node is of type xmlNodePtr
xmlUnlinkNode(node);
xmlFreeNode(node);
}
最后xmlDocDumpFormatMemory()
将修改后的xml存储在xmlbuffer
。
答案 1 :(得分:0)
您可以在解析xml时使用NodeType()
并检查每个节点是否为注释(8表示评论,请参见此处:http://xmlsoft.org/xmlreader.html#Extracting),然后使用xmlUnlinkNode()
和{xmlFreeNode()
将其删除{1}}。