2017-07-18 66 views
0

以下是註釋其節點之一(即<date>)的XML文件。使用libxml解析XML文件時刪除註釋

<?xml version="1.0"?> 
<story> 
    <info> 
    <author>Abc Xyz</author> 
    <!--<date>June 2, 2017</date> --> 
    <keyword>example keyword</keyword> 
    </info> 
</story> 

我要的是從XML文件中使用的libxml庫完全刪除註釋行/節點,它應該看看下面:

<?xml version="1.0"?> 
<story> 
    <info> 
    <author>Abc Xyz</author> 
    <keyword>example keyword</keyword> 
    </info> 
</story> 

我還提到了libxml的文檔,但沒」用XML文件中的「comment/s」幫助我。

回答

0

您可以使用NodeType()在解析XML和檢查每個節點,如果它是一個評論(8指的評論,在這裏看到:http://xmlsoft.org/xmlreader.html#Extracting),然後用xmlUnlinkNode()xmlFreeNode()將其刪除。

0

我嘗試了不同的方式,它的工作。看起來像使用xmlreader用於修改XML不會有太大的幫助,而不是我做xmlReadMemory(),然後在解析並以下檢查:

if(node->type == XML_COMMENT_NODE){ //node is of type xmlNodePtr 
    xmlUnlinkNode(node); 
    xmlFreeNode(node); 
} 

最後xmlDocDumpFormatMemory()修改後的XML存儲在xmlbuffer