问题的产生
使用libxml2操作XML的时候,有的时候会调用
1 | xmlUnlinkNode(node_to_del); |
来删除节点,但是执行了之后,保存成XML文件的时候,会在删除的节点那一行显示出一个空行,很不美观。
问题的原因
xmlNodePtr指向的元素,其实并不全是XML的元素节点(XML_ELEMENT_NODE),还会有一些用于缩进显示的节点(XML_TEXT_NODE),在删除元素节点的时候,需要把这个元素节点之前的文本节点也删除掉。
实例代码
1 | node_to_del = xml; |
注意事项
要删除元素节点前面(->prev)的文本节点,不要删除元素节点后面(->next)的文本节点。