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
将节点复制到其中并对其进行序列化。