2011-06-28 44 views
4

如何告訴XML分析器忽略被引用但未聲明的實體?如何告訴XML分析器忽略丟失的實體

我得到的例外是這樣的:

org.xml.sax.SAXParseException:本 實體 「阿爾法」 被引用,但不能 聲明。

我想要的是解析器處理字符串「& alpha」;作爲一個簡單的字符串,而不是一個字符實體。

此外,我有很多這些實體,所以我不能告訴解析器單獨忽略它們。

回答

5

您可以編寫一個腳本(例如使用sed或perl),該腳本使用正則表達式替換來預處理輸入文檔並轉義和字符,除了在XML識別的字符實體的開頭(即five predefined ones和任何你已經聲明)。

E.g.該腳本將在α等字符串的開頭代替&&,產生α。但它將僅剩下< 。你要問的問題歸結爲「我如何獲得旨在解析XML(即格式良好的XML)以處理非XML(即格式不正確的XML)的工具?」答案几乎總是先使用非XML工具來修正輸入並使其格式良好。