java解析xml汇总
来源:互联网 发布:计算机最小的数据单位 编辑:程序博客网 时间:2024/05/17 07:41
各种方法都用过。现在总结一下。 经常记不住,要找资料。现在总结一下。
xpath 语法 http://www.w3school.com.cn/xpath/xpath_syntax.asp
xml 文件如下:
- <?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>
- 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());
- }
- }
- 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");
- }
- }) ;
- }
- }
- 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...
- }
- }
- }
- }
- 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());;
- }
- }
转自:http://blog.csdn.net/is_zhoufeng/article/details/8553184
0 0
- java解析xml汇总
- java解析xml汇总
- java解析xml汇总
- Java解析XML汇总
- Java解析XML汇总
- java解析xml汇总
- java解析xml汇总
- JAVA解析XML汇总
- java解析xml汇总
- java解析xml汇总
- java解析xml汇总
- xml解析汇总
- XML解析方式汇总
- java提高篇(45)--Java解析XML汇总
- Java解析XML汇总(DOM/SAX/JDOM/DOM4j/XPath)
- Java解析XML汇总(DOM/SAX/JDOM/DOM4j/XPath)
- Java解析XML汇总(DOM/SAX/JDOM/DOM4j/XPath)
- Java解析XML汇总(DOM/SAX/JDOM/DOM4j/XPath)
- struts2学习笔记
- HTML5移动开发之路(12)——HTML5中的音频
- 黑马程序员--java线程
- Android 仿大众点评团购购买条浮动效果
- UVA 10192 - Vacation
- java解析xml汇总
- 如何运行python脚本 及 如何在脚本中输入中文
- String类的实现
- C#设计模式之装饰者模式(Decorator Pattern)
- MVC简介
- Orange'S学习笔记(一)
- 屏幕旋转学习笔记
- 工厂模式
- Android 天气预报图文字幕垂直滚动效果