C++ C/C++;,libxml2:解析HTML片段
我需要解析现实生活中的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:
<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>