源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

java解析xml常用的几种方式总结

  • 时间:2020-11-11 03:14 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:java解析xml常用的几种方式总结
各种方法都用过。现在总结一下。 经常记不住,要找资料。现在总结一下。 xml 文件如下:
[u]复制代码[/u] 代码如下:
<?xml version="1.0" encoding="ISO-8859-1"?> <bookstore> <book category="COOKING">   <title lang="en">Everyday Italian</title>   <author>Giada De Laurentiis</author>   <year>2005</year>   <price>30.00</price>   <aa>    <bb>     <cc>ccccc</cc>    </bb>   </aa> </book> <book category="CHILDREN">   <title lang="en">Harry Potter</title>   <author>J K. Rowling</author>   <year>2005</year>   <price>29.99</price> </book> <book category="WEB">   <title lang="en">XQuery Kick Start</title>   <author>James McGovern</author>   <author>Per Bothner</author>   <author>Kurt Cagle</author>   <author>James Linn</author>   <author>Vaidyanathan Nagarajan</author>   <year>2003</year>   <price>49.99</price> </book> <book category="WEB">   <title lang="en">Learning XML</title>   <author>Erik T. Ray</author>   <year>2003</year>   <price>39.95</price> </book> </bookstore>
[u]复制代码[/u] 代码如下:
package sort; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; public class D2 {  /**   * 直接使用DOM解析   * @param args   * @throws Exception   */  public static void main(String[] args) throws Exception{   DocumentBuilder sb =  DocumentBuilderFactory.newInstance().newDocumentBuilder();   Document root = sb.parse(D2.class.getClassLoader().getResourceAsStream("NewFile.xml"));   System.out.println(root.getChildNodes().item(0).getNodeName());  } }
[u]复制代码[/u] 代码如下:
package sort; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; import com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl; public class D {  /**   * 使用SAX解析   * @param args   * @throws Exception   */  public static void main(String[] args) throws Exception {   SAXParserFactory factory = SAXParserFactoryImpl.newInstance();   SAXParser parser = factory.newSAXParser() ;   parser.parse(D.class.getClassLoader().getResourceAsStream("NewFile.xml"),     new DefaultHandler(){      @Override      public void characters(char[] ch, int start, int length)        throws SAXException {       System.out.println("characters");      }      @Override      public void endDocument() throws SAXException {       // TODO Auto-generated method stub       System.out.println("endDocument");      }      @Override      public void endElement(String uri, String localName,        String qName) throws SAXException {       // TODO Auto-generated method stub       System.out.println("endElement");      }      @Override      public void startDocument() throws SAXException {       // TODO Auto-generated method stub       System.out.println("startDocument");      }      @Override      public void startElement(String uri, String localName,        String qName, Attributes attributes)        throws SAXException {       // TODO Auto-generated method stub       System.out.println("startElement");      }   }) ;     } }
[u]复制代码[/u] 代码如下:
package sort; import javax.xml.stream.XMLInputFactory; import javax.xml.stream.XMLStreamReader; public class D3 {  /**   * 使用XMLStream解析   * @param args   * @throws Exception   */  public static void main(String[] args) throws Exception {   XMLInputFactory xmlFactor = XMLInputFactory.newFactory();   XMLStreamReader reader =    xmlFactor.createXMLStreamReader(D3.class.getClassLoader().getResourceAsStream("NewFile.xml"));   while(reader.hasNext()){    int point = reader.next() ;    switch(point){    case XMLStreamReader.START_ELEMENT :     System.out.println("start_element");    case XMLStreamReader.END_ELEMENT :     // do something...    }   }  } }
[u]复制代码[/u] 代码如下:
package sort; import org.dom4j.Document; import org.dom4j.io.SAXReader; /**  * 使用DOM4j XPATH解析XML (需要加入依赖jar文件)  * @author zhoufeng  *  */ public class D4 {  public static void main(String[] args) throws Exception{   SAXReader reader = new SAXReader() ;   Document root = reader.read(D4.class.getClassLoader().getResourceAsStream("NewFile.xml"));   /* 选择所有的cc节点 */   System.out.println(root.selectNodes("//cc").size());;   /*选择所有的book节点,并且有子节点author的*/   System.out.println((root.selectNodes("//book[author]").size()));;   /* 选择所有book节点,并且有属性category的   */   System.out.println((root.selectNodes("//book[@category]").size()));;   /* 选择所有book节点,并且有子节点author值为James McGovern ,并且还有category属性节点值为WEB   下面的price节点*/   System.out.println(root.selectNodes("//book[author='James McGovern'][@category='WEB']/price").size());;  } }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部