繁体   English   中英

libxml2避免使用xml版本

[英]libxml2 avoid xml version

我正在使用基于XML的协议,例如:

<Command Timestamp="0" ReceptionTimeStamp="0" Sender="P1" Receiver="P2"><GetData/></Command>

我可以使用xmlReadMemory成功解析这些消息并在树中导航。 尝试创建自己的消息时,我可以通过以下方式成功创建它们:

doc = xmlNewDoc(NULL);
node = xmlNewNode(NULL, BAD_CAST "Command");
xmlDocSetRootElement(doc, node);

xmlNewProp(node, BAD_CAST "Timestamp", BAD_CAST "0");
xmlNewProp(node, BAD_CAST "ReceptionTimestamp", BAD_CAST "0");
xmlNewProp(node, BAD_CAST "Sender", BAD_CAST "P1");
xmlNewProp(node, BAD_CAST "Receiver", BAD_CAST "P2");

xmlNewChild(node, NULL, BAD_CAST "GetData", NULL);

当我在输出中获取xml版本时尝试获取对应的字符串时出现问题:

<?xml version="1.0"?><Command Timestamp="0" ReceptionTimeStamp="0" Sender="P1" Receiver="P2"><GetData/></Command>

有什么办法可以避免呢?

我通过将xmlNodeDump与根节点一起使用找到了一种解决方案/解决方法:

xmlBufferPtr buf = xmlBufferCreate();
int size = xmlNodeDump(buf, NULL, node, 0, 0);
printf ("%s\n", buf->content);
xmlBufferFree (buf);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM