利用java Api解析XML
2009-11-13 20:58:58 来源:WEB开发网核心提示:import java.io.IOException;import java.io.StringReader;import java.util.ArrayList;import java.util.List;import javax.xml.parsers.DocumentBuilder;import javax.xm
import java.io.IOException;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.List;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
/**
* Usage: You can get a instance of Document from a string of xml.
* This class supply some method to read a document.
*
*/
public class XMLParser {
/**
* Get a instance of Document from a string of xml.
*
* @param xmlStr
* @return Document
*/
public static Document parse(String xmlStr) {
if (xmlStr == null) {
return null;
}
StringReader reader = new StringReader(xmlStr);
InputSource source = new InputSource(reader);
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = null;
try {
builder = factory.newDocumentBuilder();
} catch (ParserConfigurationException e) {
e.PRintStackTrace();
}
if(builder == null){
return null;
}
Document doc = null;
try {
doc = builder.parse(source);
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return doc;
}
/**
* Get Item Value.
* @param node
* @return String
*/
public static String getItemValue(Node node){
String value = "";
if(node == null){
return null;
}
node = node.getFirstChild();
if(node != null){
value = node.getNodeValue();
}
return value.trim();
}
/**
* Get Simple Node's Value
*
* @param list
* @return String
*/
public static String getSimpleNodeValue(NodeList list){
String value = "";
Node node = null;
if (list != null) {
node = list.item(0);
value = getItemValue(node);
}
return value.trim();
}
/**
* Get Children.
* @param list
* @return List<Node>
*/
public static List<Node> getChildren(NodeList list){
List<Node> children = new ArrayList<Node>();
Node node = null;
if(list == null){
return children;
}
for(int i= 0; i< list.getLength(); i++){
node = list.item(i);
if (node.getNodeType() == Node.ELEMENT_NODE) {
children.add(node);
}
}
return children;
}
/**
* Get Attribute Value
* @param node
* @param name
* @return String
* @throws Exception
*/
public static String getAttributeValue(Node node, String name) throws Exception{
String value = "";
if(node == null){
throw new Exception("Node is null!");
}
NamedNodeMap nnm = node.getAttributes();
if (nnm == null) {
throw new Exception("NamedNodeMap is null!");
}
Node item = nnm.getNamedItem(name);
if (item == null) {
throw new Exception("No such attribute.");
}
value = item.getNodeValue();
return value.trim();
}
}
import java.io.StringReader;
import java.util.ArrayList;
import java.util.List;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
/**
* Usage: You can get a instance of Document from a string of xml.
* This class supply some method to read a document.
*
*/
public class XMLParser {
/**
* Get a instance of Document from a string of xml.
*
* @param xmlStr
* @return Document
*/
public static Document parse(String xmlStr) {
if (xmlStr == null) {
return null;
}
StringReader reader = new StringReader(xmlStr);
InputSource source = new InputSource(reader);
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = null;
try {
builder = factory.newDocumentBuilder();
} catch (ParserConfigurationException e) {
e.PRintStackTrace();
}
if(builder == null){
return null;
}
Document doc = null;
try {
doc = builder.parse(source);
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return doc;
}
/**
* Get Item Value.
* @param node
* @return String
*/
public static String getItemValue(Node node){
String value = "";
if(node == null){
return null;
}
node = node.getFirstChild();
if(node != null){
value = node.getNodeValue();
}
return value.trim();
}
/**
* Get Simple Node's Value
*
* @param list
* @return String
*/
public static String getSimpleNodeValue(NodeList list){
String value = "";
Node node = null;
if (list != null) {
node = list.item(0);
value = getItemValue(node);
}
return value.trim();
}
/**
* Get Children.
* @param list
* @return List<Node>
*/
public static List<Node> getChildren(NodeList list){
List<Node> children = new ArrayList<Node>();
Node node = null;
if(list == null){
return children;
}
for(int i= 0; i< list.getLength(); i++){
node = list.item(i);
if (node.getNodeType() == Node.ELEMENT_NODE) {
children.add(node);
}
}
return children;
}
/**
* Get Attribute Value
* @param node
* @param name
* @return String
* @throws Exception
*/
public static String getAttributeValue(Node node, String name) throws Exception{
String value = "";
if(node == null){
throw new Exception("Node is null!");
}
NamedNodeMap nnm = node.getAttributes();
if (nnm == null) {
throw new Exception("NamedNodeMap is null!");
}
Node item = nnm.getNamedItem(name);
if (item == null) {
throw new Exception("No such attribute.");
}
value = item.getNodeValue();
return value.trim();
}
}
更多精彩
赞助商链接