java解析xml常用的几种方式、

 我来答
迎者遇l
2013-10-18 · TA获得超过142个赞
知道小有建树答主
回答量:158
采纳率:75%
帮助的人:63.6万
展开全部
各种方法都用过。现在总结一下。 经常记不住,要找资料。现在总结一下。> Everyday Italian Giada De Laurentiis 2005 30.00 ccccc Harry Potter J K. Rowling 2005 29.99 XQuery Kick Start James McGovern Per Bothner Kurt Cagle James Linn Vaidyanathan Nagarajan 2003 49.99 Learning XML Erik T. Ray 2003 39.95 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());; } }
朴质且舒心的小行家B
2021-11-16 · 超过95用户采纳过TA的回答
知道小有建树答主
回答量:763
采纳率:76%
帮助的人:35.4万
展开全部
1.DOM(Document Object Model) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准。DOM是以层次结构组织的节点或信息片断的集...
2.SAX(Simple API for XML) SAX处理的优点非常类似于流媒体...
3.JDOM(Java-based Document Object Model)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式