2012-02-20 119 views
0

我需要解析真实生活的HTML文档。在大多数情况下,它们形成良好,但有时(并且不能忽略)它们表现为在根级别具有多于一个兄弟姐妹的碎片。
实施例:C/C++,libxml2:解析HTML片段

<div>one</div> 
<div>two</div> 

现在我用用下面的解析标志的libxml2 v2.7.8:

HTML_PARSE_NOERROR | HTML_PARSE_RECOVER | HTML_PARSE_NODEFDTD | HTML_PARSE_NOIMPLIED 

如果我与上面的例子给它,然后从分析的文档转储HTML:

<div>one<div>two</div></div> 

正如你可以看到它嵌套的元素,而我的要求是不打破HTML。另外,我希望能够在从这些片段创建的树上运行XPath表达式。在这种情况下,要到达第二个DIV,可以使用'/ div [2]'。

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

回答