DOMTest.java
~~~~~~~~~~~~
package com.anil;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.soap.Text;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.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;
/**
* Simple XML process use DOM Method, DOM document object model
*
*/
public class DOMTest {
public static void main(String[] args) {
// DOM document object model
try {
/*
* get documentBuilder and parse XML file
*/
DocumentBuilderFactory factory = DocumentBuilderFactory
.newInstance();
DocumentBuilder documentBuilder = factory.newDocumentBuilder();
Document document = documentBuilder.parse("anil.xml");
/*
* get first element in XML file, this were root element
*/
Element element = document.getDocumentElement();
String tagName = element.getTagName();
System.out.println("root element: " + tagName);
/*
* add new element to XML and save it to new file
*/
Element power = document.createElement("Power");
element.appendChild(power);
try {
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
transformer.transform(new DOMSource(document),new StreamResult("newAnil.xml"));
System.out.println("Create new XML file success!");
System.out.println("----------------------------");
} catch (TransformerConfigurationException e1) {
e1.printStackTrace();
} catch (TransformerException e) {
e.printStackTrace();
}
/*
* search for special element item, and print item value
*/
NodeList nodeList = element.getElementsByTagName("display");
for (int i = 0; i < nodeList.getLength(); i++) {
Element item = (Element) nodeList.item(i);
String size = item.getAttribute("size");
System.out.println("Display size: " + size);
System.out.println("-----------------------------");
}
/*
* get sub nodes of element
*/
NodeList childNodes = element.getChildNodes();
System.out.println("childNodes size: " + childNodes.getLength());
/*
* iterator sub element in XML file
*/
for (int i = 0; i < childNodes.getLength(); i++) {
Node item = childNodes.item(i);
// System.out.println(item);
/*
* access Text in XML file
*/
if (item instanceof Text) {
Text text = (Text) item;
String data = text.getData();
System.out.println("text: " + data);
}
/*
* access element in XML file
*/
if (item instanceof Element) {
Element e = (Element) item;
String tagName2 = e.getTagName();
System.out.println("sub tag name: " + tagName2);
/*
* get attributes of element
*/
NamedNodeMap attributes = e.getAttributes();
for (int j = 0; j < attributes.getLength(); j++) {
Node item2 = attributes.item(j);
System.out.println("sub item: " + item2);
}
}
}
System.out.println("----------End------------");
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
--------------------------------------------------------------------------------------------------------------
anil.xml
~~~~~~
<?xml version="1.0" encoding="utf-8"?>
<computer>
<display size="17">Samsung</display>
<box>
<motherboard>
<cpu>E8300</cpu>
<ram type="DDR2">2G</ram>
<displaycard>nVidia</displaycard>
</motherboard>
<harddisk>320G</harddisk>
<dvdrom>16X</dvdrom>
</box>
</computer>
~~~~~~~~~~~~
package com.anil;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.soap.Text;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.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;
/**
* Simple XML process use DOM Method, DOM document object model
*
*/
public class DOMTest {
public static void main(String[] args) {
// DOM document object model
try {
/*
* get documentBuilder and parse XML file
*/
DocumentBuilderFactory factory = DocumentBuilderFactory
.newInstance();
DocumentBuilder documentBuilder = factory.newDocumentBuilder();
Document document = documentBuilder.parse("anil.xml");
/*
* get first element in XML file, this were root element
*/
Element element = document.getDocumentElement();
String tagName = element.getTagName();
System.out.println("root element: " + tagName);
/*
* add new element to XML and save it to new file
*/
Element power = document.createElement("Power");
element.appendChild(power);
try {
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
transformer.transform(new DOMSource(document),new StreamResult("newAnil.xml"));
System.out.println("Create new XML file success!");
System.out.println("----------------------------");
} catch (TransformerConfigurationException e1) {
e1.printStackTrace();
} catch (TransformerException e) {
e.printStackTrace();
}
/*
* search for special element item, and print item value
*/
NodeList nodeList = element.getElementsByTagName("display");
for (int i = 0; i < nodeList.getLength(); i++) {
Element item = (Element) nodeList.item(i);
String size = item.getAttribute("size");
System.out.println("Display size: " + size);
System.out.println("-----------------------------");
}
/*
* get sub nodes of element
*/
NodeList childNodes = element.getChildNodes();
System.out.println("childNodes size: " + childNodes.getLength());
/*
* iterator sub element in XML file
*/
for (int i = 0; i < childNodes.getLength(); i++) {
Node item = childNodes.item(i);
// System.out.println(item);
/*
* access Text in XML file
*/
if (item instanceof Text) {
Text text = (Text) item;
String data = text.getData();
System.out.println("text: " + data);
}
/*
* access element in XML file
*/
if (item instanceof Element) {
Element e = (Element) item;
String tagName2 = e.getTagName();
System.out.println("sub tag name: " + tagName2);
/*
* get attributes of element
*/
NamedNodeMap attributes = e.getAttributes();
for (int j = 0; j < attributes.getLength(); j++) {
Node item2 = attributes.item(j);
System.out.println("sub item: " + item2);
}
}
}
System.out.println("----------End------------");
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
--------------------------------------------------------------------------------------------------------------
anil.xml
~~~~~~
<?xml version="1.0" encoding="utf-8"?>
<computer>
<display size="17">Samsung</display>
<box>
<motherboard>
<cpu>E8300</cpu>
<ram type="DDR2">2G</ram>
<displaycard>nVidia</displaycard>
</motherboard>
<harddisk>320G</harddisk>
<dvdrom>16X</dvdrom>
</box>
</computer>
No comments:
Post a Comment