2013-04-24 109 views
0

这是我的XML文件。Java> XML>通过TagName获取内容并更改内容

<config> <properties> 
<entry key="delivaryDate">15-FEBRUARY-2013</entry> 
<entry key="externalCOID">123456</entry> 
<entry key="inputFileName">Generic_ChipONLY.chp</entry> 
<entry key="recordTotal">2</entry> 
<entry key="dueDate">15-MARCH-2013</entry> 
</properties> </config> 

例如,我想将“recordTotal”中的记录从2改为10,我该怎么做? 现在我只知道使用getElementsByTagName(“entry”)。

DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance(); 
DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder(); 
Document doc = docBuilder.parse(new File("customer.xml")); 
NodeList entry = doc.getElementsByTagName("entry"); 
+0

看到这个http://stackoverflow.com/questions/8583080/setting-node-value-using-xpath-java,您可以使用XPath是的XPath =“/配置/性能/条目[@key ='recordTotal']“; – Abi 2013-04-24 02:57:39

+0

嗯...可以告诉我一步吗?我不能这样做 – 2013-04-24 04:43:47

回答

0
String xmlFile = "customer.xml"; 

      DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance(); 
      DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder(); 
      Document doc = docBuilder.parse(xmlFile); 

      //Retrieve the third entry node 
      Node entryNode = doc.getElementsByTagName("entry").item(3); 

      //Set new value 
      entryNode.setTextContent("10"); 

      //Save to file 
      TransformerFactory transformerFactory = TransformerFactory.newInstance(); 
      Transformer transformer = transformerFactory.newTransformer(); 
      DOMSource source = new DOMSource(doc); 
      StreamResult result = new StreamResult(new File(xmlFile)); 
      transformer.transform(source, result);