2014-07-07 86 views
0

我很抱歉,如果這個問題已被問到某處,我一直在谷歌搜索了一個多小時,似乎無法弄清楚如何做到這一點。Java讀取XML並將textnode放入字符串數組中?

我創造了我提出申請存儲在XML和我已經得到了應用,以成功創建XML文件,如果使用DOM不存在一個配置文件,

(碼,如果它需要)

public static void newConfig() { 
    try { 

     DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); 
     DocumentBuilder docBuilder = docFactory.newDocumentBuilder(); 

     // root element 
     Document doc = docBuilder.newDocument(); 
     Element rootElement = doc.createElement("settings"); 
     doc.appendChild(rootElement); 

     // address element 
     Element address = doc.createElement("address"); 
     address.appendChild(doc.createTextNode("127.0.0.1")); 
     rootElement.appendChild(address); 

     // port element 
     Element port = doc.createElement("port"); 
     port.appendChild(doc.createTextNode("3306")); 
     rootElement.appendChild(port); 

     // user element 
     Element user = doc.createElement("user"); 
     user.appendChild(doc.createTextNode("user")); 
     rootElement.appendChild(address); 

     // password element 
     Element pass = doc.createElement("pass"); 
     pass.appendChild(doc.createTextNode("password")); 
     rootElement.appendChild(pass); 

     // database element 
     Element datab = doc.createElement("database"); 
     datab.appendChild(doc.createTextNode("A1")); 
     rootElement.appendChild(datab); 

     // write the content to XML 
     TransformerFactory transformerFactory = TransformerFactory.newInstance(); 
     Transformer transformer = transformerFactory.newTransformer(); 
     DOMSource source = new DOMSource(doc); 
     StreamResult result = new StreamResult(new File("config.xml")); 
     transformer.setOutputProperty(OutputKeys.INDENT, "yes"); 
     transformer.transform(source, result); 

     } catch (ParserConfigurationException pce) { 
     pce.printStackTrace(); 
     } catch (TransformerException tfe) { 
     tfe.printStackTrace(); 
     } 

     } 

它創建這樣的:

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<settings> 
<port>3306</port> 
<address>127.0.0.1</address> 
<pass>password</pass> 
<database>A1</database> 
</settings> 

我怎麼會去檢索那些textnodes作爲一個字符串數組?

回答

0

試試這個

NodeList nodes = docBuilder.parse(new File("1.xml")).getDocumentElement().getChildNodes(); 
    String[] a = new String[4]; 
    for (int i = 0, j = 0; i < nodes.getLength(); i++) { 
     Node n = nodes.item(i); 
     if (n instanceof Element) { 
      a[j++] = n.getTextContent().trim(); 
     } 
    } 
+0

我忘了說,這個工作非常感謝:) –

相關問題