libxml2 HTML解析

6

我正在使用libxml2解析HTML,使用XPath查找元素。一旦我找到了需要的元素,如何从该元素中获取HTML字符串(需要注意该元素将有许多子元素)?给定一个文档:

<html>
    <header>
        <title>Some document</title>
    </header

    <body>
        <p id="faq">
            Some kind of text <a href="http://www.nowhere.com/">here</a>.
        </p>
    </body>
</html>

假设我使用XPath检索到了body元素,然后获取该元素的HTML内容,我希望最终得到一个包含以下字符串的字符串:
<body>
    <p id="faq">
        Some kind of text <a href="http://www.nowhere.com/">here</a>.
    </p>
</body>

我该怎么做?
1个回答

6
这就是 xmlNodeDump 的目的:
编辑:
当你有一个 xmlNodePtr node 时,可以这样做:
xmlBufferPtr nodeBuffer = xmlBufferCreate();
xmlNodeDump(nodeBuffer, doc, node, 0, 1);
// ... Do something with nodeBuffer->content
// When done:
xmlBufferFree(nodeBuffer);

第四个和第五个参数控制缩进和格式。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接