WEB开发网
开发学院WEB开发Jsp 利用java Api解析XML 阅读

利用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();
}

}

Tags:利用 java Api

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接