gpt4 book ai didi

c - libxml2 获取节点 XML 文本中的偏移量

转载 作者:行者123 更新时间:2023-11-30 16:18:43 28 4
gpt4 key购买 nike

我需要知道在使用 xmlReadMemory 获取 dom 后,可以在 xml 字符串的哪个偏移量处找到 dom 中某处的特定任意节点。问题是我无法弄清楚从哪里获取 xmlParserCtxtPtr 作为第一个参数传递给 xmlParserFindNodeInfo 因为我的整个解析过程没有产生这样的上下文;只有一个 xmlDoc。

最佳答案

以下代码对我有用(libxml2 文档几乎没有什么希望,必须下载源代码并深入挖掘 lib,直到我理解得足以将其组合在一起)。关键是:

xmlSetFeature(ctxt, "gather line info", (void *)&v);

下面是一些代码来说明:

const char *xml = ...
xmlParserCtxt *ctxt = NULL;
xmlDoc *doc = NULL;
if (!(ctxt = xmlCreateDocParserCtxt((const unsigned char *)xml)))
return -1;
int v = 1;
xmlSetFeature(ctxt, "gather line info", (void *)&v);
if (xmlParseDocument(ctxt) == -1)
{
xmlFreeParserCtxt(ctxt);
return -1;
}
else
{
if ((ctxt->wellFormed) || ctxt->recovery)
doc = ctxt->myDoc;
else
{
xmlFreeParserCtxt(ctxt);
return -1;
}
}

// use doc to get a node and then xmlParserFindNodeInfo(ctxt, node)


xmlFreeParserCtxt(ctxt);

关于c - libxml2 获取节点 XML 文本中的偏移量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55831913/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com