给定一个有效的,任意的xmlNodePtr,我想要该节点的字符串表示形式,包括相同形式的标签,属性和子节点(递归)。
FWIW,我的方案是我使用PerformXPathQuery从现有文档中获取数据块。我需要将查询的结果(其中嵌有XML元素)作为原始字符串,因此我可以将其插入到文本字段中。
这似乎是一项简单的任务,但我找不到一个简单的方法。将xmlDocPtr写入文件必须这样做,但是,我看不到一个方便的方法,它将对树中的任意节点执行相同的操作,并将其返回到内存中。
我希望我只是在xmlsoft.org的棕色棕色文档配色方案中失明
答案 0 :(得分:6)
xmlNodeDump(或xmlNodeDumpOutput)您要找的是什么?
答案 1 :(得分:5)
我用于将节点转储到字符串的代码。它是客观的 - 所以只需根据需要更改输出。
xmlBufferPtr buffer = xmlBufferCreate();
int size = xmlNodeDump(buffer, myXMLDoc, myXMLNode, 0, 1);
NSLog(@"%d", size);
NSLog(@"%s", buffer->content);
不要忘记再次释放缓冲区。
答案 2 :(得分:1)
您可以做的一种方法是创建一个新文档,然后使用xmlDocCopyNode
将节点复制到其中并对其进行序列化。