2012-02-20 120 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以及如何?

回答