2010-11-26 55 views
3

我在使用XPath解析XML下面這個turorial,並且它提供了以下例子打開一個文檔:String作爲文檔

DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance(); 
domFactory.setNamespaceAware(true); // never forget this! 
DocumentBuilder builder = domFactory.newDocumentBuilder(); 
Document doc = builder.parse("books.xml"); 

我想什麼做的,就是改變這種狀況,使Document正在讀取我已經完成的String變量,而不是從文件讀取。我怎樣才能做到這一點?

回答

5
builder.parse(new InputSource(new StringReader("<some><xml></xml></some>"))); 
2

here

DocumentBuilderFactory dbf = 
     DocumentBuilderFactory.newInstance(); 
    DocumentBuilder db = dbf.newDocumentBuilder(); 
    InputSource is = new InputSource(); 
    is.setCharacterStream(new StringReader(xmlRecords)); 

    Document doc = db.parse(is); 
0

你可以試試這個:

public static Document stringToDom(String xmlSource) 
     throws SAXException, ParserConfigurationException, IOException { 
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 
    DocumentBuilder builder = factory.newDocumentBuilder(); 
    return builder.parse(new InputSource(new StringReader(xmlSource))); 
}