2011-12-08 42 views
0

我需要從我的xml文件中獲取StreamSource,但是我也需要使用自定義的EntityResolver。如何使用XMLReader中的自定義EntityResolver設置StreamSource.setReader()

我遇到的問題是我無法想象如何將XMLReader放入我的流源中。

我做了以下內容:(DOC是一個InputStream)

XMLReader reader = XMLReaderFactory.createXMLReader(); 
StreamSource doc_source = new StreamSource(doc); 
reader.setEntityResolver(new PsudoEntityResolver()); 
doc_source.setReader(reader); 

顯然,這並不工作,因爲setReader()接受一個Reader作爲它的參數,而不是一個XMLReader。

任何想法,我可以解決這個問題。

回答

0

使用您的XMLReader,設置實體解析器,你是,但隨後致電:

reader.parse(new InputSource(doc)); 
+0

感謝您的快速回復,但我不明白這是如何幫助我得到讀者到我的StreamSource。我正在構造StreamSource以傳遞給正在執行解析的另一個方法(我無法修改)。謝謝! –

+0

然後對不起,我相信你被卡住了。 StreamSource僅指示XML數據的來源 - 文件,字節流(InputStream),字符流(Reader)或URL。它不包含任何其他配置,例如一個實體解析器。即使您將子類StreamSource包含這些配置,被調用的方法也不會知道它們的任何內容,因此不會使用它們。 – ziesemer

相關問題