libxml xmlNodePtr到原始xml字符串?

给定一个有效的,任意的xmlNodePtr,我想要该节点的字符串表示,包括相同forms的标签,属性和子节点(递归)。

FWIW,我的方案是我使用PerformXPathQuery从现有文档中获取数据块。 我需要将查询的结果(其中嵌有XML元素)作为原始字符串,因此我可以将其插入到文本字段中。

这些似乎是一项简单的任务,但我找不到一个简单的方法。 将xmlDocPtr写入文件必须这样做,但是,我看不到一个方便的方法,它将对树中的任意节点执行相同的操作,并将其返回到内存中。

我希望我只是在xmlsoft.org的褐色棕色文档配色方案中失明

你正在寻找xmlNodeDump (或xmlNodeDumpOutput )吗?

我用来将节点转储到字符串的代码。 它是objectiv-c所以只需根据需要更改输出。

 xmlBufferPtr buffer = xmlBufferCreate(); int size = xmlNodeDump(buffer, myXMLDoc, myXMLNode, 0, 1); NSLog(@"%d", size); NSLog(@"%s", buffer->content); 

别忘了再次释放缓冲区。

您可以做到的一种方法是创建一个新文档,然后使用xmlDocCopyNode将节点复制到其中并对其进行序列化。