html - libxml2 HTML解析

标签 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>

假设我使用 XPath 检索了 body 元素,然后获取了它的 HTML,我想以一个包含以下内容的字符串结束:

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

我该怎么做?

最佳答案

这就是 xmlNodeDump 的目的:

编辑:

当你有一个 xmlNodePtr node 时,执行如下操作:

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

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

关于html - libxml2 HTML解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3543443/

相关文章:

html - 如何将 <div> 旋转 90 度?

html - 使用 css 悬停时 td 标签上的边框移动整个表格

regex - 为什么 C# 的 Regex.Matches() 返回单个 Match 对象中的所有匹配项?

javascript - 在javascript函数中获取复选框值

python - 从(相对)父文件夹导入 BeautifulSoup,并在其旁边导入一个 html 解析器

javascript - jQuery在Keypress事件上

html - 如何在 Pardot 中将表单居中?

c - 在 C 中硬编码或替换 char **argv

c - 解释devm_kzalloc参数和用法

c - C 声明变量时出错