More trials with XML configuration


Now, let us take up the challenge of reading a value changing it to another value and writing it back to XML.
Suppose there is an xml with node type as collector and nodename as lositcalhost, what we need to do is change localhost to site1.

Here is the java implementation:

import java.io.File;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javahe chx.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

public class ModifyXMLFile {

public static void main(String argv[]) {

  try {
String filepath = "D:\\js\\testxml.xml";
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.parse(filepath);

// Get the root element
Node company = doc.getFirstChild();

Node nodetype = doc.getElementsByTagName("nodetype").item(1);
NodeList list = nodetype.getChildNodes();

System.out.println("list.getLength()..."+list.getLength());
for(int i=0;i<list.getLength();i++){

Node node = list.item(i);
//get the nodetype and update the sibling value
System.out.println("getNodeValue..."+node.getNodeValue());

if(node.getNodeValue().equalsIgnoreCase("collector")){
Node nodetype1 = doc.getElementsByTagName("nodename").item(1);
System.out.println("entered...into nodetype..");
nodetype1.setTextContent("Site1");

}

// write the content into xml file
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new File(filepath));
transformer.transform(source, result);

System.out.println("Done");

  } catch (ParserConfigurationException pce) {
pce.printStackTrace();
  } catch (TransformerException tfe) {
tfe.printStackTrace();
  } catch (IOException ioe) {
ioe.printStackTrace();
  } catch (SAXException sae) {
sae.printStackTrace();
  }
}
}

Comments

Popular Posts