2012-10-02 76 views
1

我在String變量中有一個XML,我想將這個值傳遞給DocumentBuilder的parse()。DocumentBuilder分析xml錯誤

String xml = "<?xml version="1.0 ....>"; 
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 
DocumentBuilder db = dbf.newDocumentBuilder(); 
Document doc = db.parse(new InputSource(new StringReader(xml))); 

但是,好像最後一行不工作,因爲doc爲空。

這有什麼不對嗎?我只是嘗試一個XML值,並將其轉換爲文檔。

感謝您的幫助。

+0

你怎麼知道「doc是空的」?在寫文章時,'db'是唯一空的,所以如果它是真正的代碼,那麼你就會吞噬異常,並且永遠不會進入'parse()'調用。 – parsifal

+0

我在文檔上做了系統,它是空的。 – Tony

+0

@parsifal - 這當然是真正的問題。 –

回答

2

你需要的東西更接近

DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance(); 
DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder(); 
Document doc = docBuilder.parse(new InputSource(new StringReader(xml))); 

您可以修剪這:

DocumentBuilder docBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); 
Document doc = docBuilder.parse(new InputSource(new StringReader(xml))); 

需要注意的是,通常你會期望一個XML文件,它會是:

DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance(); 
DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder(); 
Document doc = docBuilder.parse(new File(fullpathtofile));