Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C/C++;,libxml2:解析HTML片段_C++_Html_C_Xpath_Libxml2 - Fatal编程技术网

C++ C/C++;,libxml2:解析HTML片段

C++ C/C++;,libxml2:解析HTML片段,c++,html,c,xpath,libxml2,C++,Html,C,Xpath,Libxml2,我需要解析现实生活中的HTML文档。在大多数情况下,它们是格式良好的,但有时(不能忽略)它们显示为在根级别具有多个兄弟的片段。 例如: 如果我使用上面的示例向其提供信息,然后从解析的文档中转储HTML: <div>one<div>two</div></div> onetwo 正如您所见,它嵌套了元素,而我的要求是不破坏HTML。我还希望能够在由这些片段创建的树上运行XPath表达式。在本例中,要访问第二个DIV,可以使用“/DIV[2]” 所以

我需要解析现实生活中的HTML文档。在大多数情况下,它们是格式良好的,但有时(不能忽略)它们显示为在根级别具有多个兄弟的片段。
例如:

如果我使用上面的示例向其提供信息,然后从解析的文档中转储HTML:

<div>one<div>two</div></div>
onetwo
正如您所见,它嵌套了元素,而我的要求是不破坏HTML。我还希望能够在由这些片段创建的树上运行XPath表达式。在本例中,要访问第二个DIV,可以使用“/DIV[2]”


所以问题是是否有可能解析这些类型的HTML以及如何解析?

我想您需要HTML到xml的转换。在Java中我使用JSoup,但stackoverflow肯定知道如何在c中使用它。第一步:PHP的DOM组件使用Libxml2。在使用PHP时,我发现了以下解决方法:


HTML_PARSE_NOERROR | HTML_PARSE_RECOVER | HTML_PARSE_NODEFDTD | HTML_PARSE_NOIMPLIED
<div>one<div>two</div></div>