libxml2 HTML解析

joh*_*doe 6 html c html-parsing libxml2

我正在使用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>
Run Code Online (Sandbox Code Playgroud)

假设我body使用XPath 检索了元素,然后为此获取HTML,我想最终得到一个包含以下内容的字符串:

<body>
    <p id="faq">
        Some kind of text <a href="http://www.nowhere.com/">here</a>.
    </p>
</body>
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

Mat*_*hen 6

这是为了xmlNodeDump:

编辑:

当你有xmlNodePtr node,做一些像:

xmlBufferPtr nodeBuffer = xmlBufferCreate();
xmlNodeDump(nodeBuffer, doc, node, 0, 1);
// ... Do something with nodeBuffer->content
// When done:
xmlBufferFree(nodeBuffer);
Run Code Online (Sandbox Code Playgroud)

第4和第5个参数控制缩进和格式.