2012-03-24 420 views
0

嘗試使用XMLWorkerHelper.GetInstance()。ParseXHTML()時,我發現它非常嚴格。任何錯誤的標籤順序或未封閉的標籤都會導致它拋出異常。處理itextsharp XMLWorkerHelper.ParseXHTML嚴格的行爲

我正在轉換HTML,我無法控制。

是否有任何標誌使其不那麼嚴格?一個輸入回調接口來處理有趣的標記? itextsharp.tools.xml.html中的任何內容?或者與itextsharp.text.IElement兼容的全新庫?

回答

1

該類的名稱和該方法幾乎總結了它 - 你不能。整個管道是基於一個有效的XML文檔將被傳入的假設,其他一切都會拋出異常。您可以自定義管道併爲鏈接分辨率,自定義CSS屬性和新的HTML標籤添加自己的處理程序,但核心文檔處理器仍然需要有效的HTML。

我建議您考慮一下running your HTML through a library that can convert it to XHTML

編輯

還檢查了wkhtmltopdf。它使用webkit來呈現HTML,並且(顯然)是一個非常好的工作。

+0

感謝克里斯。到目前爲止,我沒有成功地看過HTML Tidy和HTMLAgilityPack。巨大的瓶頸在這裏。 – Jake 2012-03-27 03:39:19

+0

@Jake,我用另一個工具更新了我的答案以嘗試 – 2012-03-27 13:05:08