国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

Java Stax解析XML示例

瀏覽:4日期:2022-08-23 15:44:51

package org.itat.stax;import java.io.IOException;import java.io.InputStream;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.parsers.ParserConfigurationException;import javax.xml.stream.EventFilter;import javax.xml.stream.FactoryConfigurationError;import javax.xml.stream.XMLEventReader;import javax.xml.stream.XMLInputFactory;import javax.xml.stream.XMLOutputFactory;import javax.xml.stream.XMLStreamConstants;import javax.xml.stream.XMLStreamException;import javax.xml.stream.XMLStreamReader;import javax.xml.stream.XMLStreamWriter;import javax.xml.stream.events.XMLEvent;import javax.xml.transform.OutputKeys;import javax.xml.transform.Result;import javax.xml.transform.Transformer;import javax.xml.transform.TransformerConfigurationException;import javax.xml.transform.TransformerException;import javax.xml.transform.TransformerFactory;import javax.xml.transform.TransformerFactoryConfigurationError;import javax.xml.transform.dom.DOMSource;import javax.xml.transform.stream.StreamResult;import javax.xml.xpath.XPath;import javax.xml.xpath.XPathConstants;import javax.xml.xpath.XPathExpressionException;import javax.xml.xpath.XPathFactory;import org.junit.Test;import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.NodeList;import org.xml.sax.SAXException;public class TestStax { @Test public void test01() { XMLInputFactory factory = XMLInputFactory.newInstance(); InputStream is = null; try { is = TestStax.class.getClassLoader().getResourceAsStream('books.xml'); XMLStreamReader reader = factory.createXMLStreamReader(is); while(reader.hasNext()) {int type = reader.next();//判斷節(jié)點類型是否是開始或者結(jié)束或者文本節(jié)點,之后根據(jù)情況及進行處理if(type==XMLStreamConstants.START_ELEMENT) { System.out.println(reader.getName());} else if(type==XMLStreamConstants.CHARACTERS) { System.out.println(reader.getText().trim());} else if(type==XMLStreamConstants.END_ELEMENT) { System.out.println('/'+reader.getName());} } } catch (XMLStreamException e) { e.printStackTrace(); } finally { try {if(is!=null) is.close(); } catch (IOException e) {e.printStackTrace(); } } } @Test public void test02() { XMLInputFactory factory = XMLInputFactory.newInstance(); InputStream is = null; try { is = TestStax.class.getClassLoader().getResourceAsStream('books.xml'); XMLStreamReader reader = factory.createXMLStreamReader(is); while(reader.hasNext()) {int type = reader.next();if(type==XMLStreamConstants.START_ELEMENT) { String name = reader.getName().toString(); if(name.equals('book')) { System.out.println(reader.getAttributeName(0)+':'+reader.getAttributeValue(0)); }} } } catch (XMLStreamException e) { e.printStackTrace(); } finally { try {if(is!=null) is.close(); } catch (IOException e) {e.printStackTrace(); } } } @Test public void test03() { XMLInputFactory factory = XMLInputFactory.newInstance(); InputStream is = null; try { is = TestStax.class.getClassLoader().getResourceAsStream('books.xml'); XMLStreamReader reader = factory.createXMLStreamReader(is); while(reader.hasNext()) {int type = reader.next();if(type==XMLStreamConstants.START_ELEMENT) { String name = reader.getName().toString(); if(name.equals('title')) { System.out.print(reader.getElementText()+':'); } if(name.equals('price')) { System.out.print(reader.getElementText()+'n'); }} } } catch (XMLStreamException e) { e.printStackTrace(); } finally { try {if(is!=null) is.close(); } catch (IOException e) {e.printStackTrace(); } } } @Test public void test04() { XMLInputFactory factory = XMLInputFactory.newInstance(); InputStream is = null; try { is = TestStax.class.getClassLoader().getResourceAsStream('books.xml'); //基于迭代模型的操作方式 XMLEventReader reader = factory.createXMLEventReader(is); int num = 0; while(reader.hasNext()) {//通過XMLEvent來獲取是否是某種節(jié)點類型XMLEvent event = reader.nextEvent();if(event.isStartElement()) { //通過event.asxxx轉(zhuǎn)換節(jié)點 String name = event.asStartElement().getName().toString(); if(name.equals('title')) { System.out.print(reader.getElementText()+':'); } if(name.equals('price')) { System.out.print(reader.getElementText()+'n'); }}num++; } System.out.println(num); } catch (XMLStreamException e) { e.printStackTrace(); } finally { try {if(is!=null) is.close(); } catch (IOException e) {e.printStackTrace(); } } } @Test public void test05() { XMLInputFactory factory = XMLInputFactory.newInstance(); InputStream is = null; try { is = TestStax.class.getClassLoader().getResourceAsStream('books.xml'); //基于Filter的過濾方式,可以有效的過濾掉不用進行操作的節(jié)點,效率會高一些 XMLEventReader reader = factory.createFilteredReader(factory.createXMLEventReader(is), new EventFilter() { @Override public boolean accept(XMLEvent event) { //返回true表示會顯示,返回false表示不顯示 if(event.isStartElement()) {String name = event.asStartElement().getName().toString();if(name.equals('title')||name.equals('price')) return true; } return false; } }); int num = 0; while(reader.hasNext()) {//通過XMLEvent來獲取是否是某種節(jié)點類型XMLEvent event = reader.nextEvent();if(event.isStartElement()) { //通過event.asxxx轉(zhuǎn)換節(jié)點 String name = event.asStartElement().getName().toString(); if(name.equals('title')) { System.out.print(reader.getElementText()+':'); } if(name.equals('price')) { System.out.print(reader.getElementText()+'n'); }}num++; } System.out.println(num); } catch (XMLStreamException e) { e.printStackTrace(); } finally { try {if(is!=null) is.close(); } catch (IOException e) {e.printStackTrace(); } } } @Test public void test06() { InputStream is = null; try { is = TestStax.class.getClassLoader().getResourceAsStream('books.xml'); //創(chuàng)建文檔處理對象 DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder(); //通過DocumentBuilder創(chuàng)建doc的文檔對象 Document doc = db.parse(is); //創(chuàng)建XPath XPath xpath = XPathFactory.newInstance().newXPath(); //第一個參數(shù)就是xpath,第二參數(shù)就是文檔 NodeList list = (NodeList)xpath.evaluate('//book[@category=’WEB’]', doc,XPathConstants.NODESET); for(int i=0;i<list.getLength();i++) {//遍歷輸出相應(yīng)的結(jié)果Element e = (Element)list.item(i);System.out.println(e.getElementsByTagName('title').item(0).getTextContent()); } } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (XPathExpressionException e) { e.printStackTrace(); } finally { try {if(is!=null) is.close(); } catch (IOException e) {e.printStackTrace(); } } } @Test public void test07() { try { XMLStreamWriter xsw = XMLOutputFactory.newInstance().createXMLStreamWriter(System.out); xsw.writeStartDocument('UTF-8','1.0'); xsw.writeEndDocument(); String ns = 'http://11:dd'; xsw.writeStartElement('nsadfsadf','person',ns); xsw.writeStartElement(ns,'id'); xsw.writeCharacters('1'); xsw.writeEndElement(); xsw.writeEndElement(); xsw.flush(); xsw.close(); } catch (XMLStreamException e) { e.printStackTrace(); } catch (FactoryConfigurationError e) { e.printStackTrace(); } } @Test public void test08() { InputStream is = null; try { is = TestStax.class.getClassLoader().getResourceAsStream('books.xml'); //創(chuàng)建文檔處理對象 DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder(); //通過DocumentBuilder創(chuàng)建doc的文檔對象 Document doc = db.parse(is); //創(chuàng)建XPath XPath xpath = XPathFactory.newInstance().newXPath(); Transformer tran = TransformerFactory.newInstance().newTransformer(); tran.setOutputProperty(OutputKeys.ENCODING,'UTF-8'); tran.setOutputProperty(OutputKeys.INDENT, 'yes'); //第一個參數(shù)就是xpath,第二參數(shù)就是文檔 NodeList list = (NodeList)xpath.evaluate('//book[title=’Learning XML’]', doc,XPathConstants.NODESET); //獲取price節(jié)點 Element be = (Element)list.item(0); Element e = (Element)(be.getElementsByTagName('price').item(0)); e.setTextContent('333.9'); Result result = new StreamResult(System.out); //通過tranformer修改節(jié)點 tran.transform(new DOMSource(doc), result); } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (XPathExpressionException e) { e.printStackTrace(); } catch (TransformerConfigurationException e) { e.printStackTrace(); } catch (TransformerFactoryConfigurationError e) { e.printStackTrace(); } catch (TransformerException e) { e.printStackTrace(); } finally { try {if(is!=null) is.close(); } catch (IOException e) {e.printStackTrace(); } } }}

<?xml version='1.0' encoding='UTF-8'?><bookstore><book category='COOKING'> <title lang='en'>Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30.00</price></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>

以上就是Java Stax解析XML示例的詳細內(nèi)容,更多關(guān)于Java 解析XML的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 亚洲欧美久久精品1区2区 | 一级成人a毛片免费播放 | 国产成年人 | 欧美另类在线观看 | 亚洲综合在线另类色区奇米 | 日本a级三级三级三级久久 日本a级特黄三级三级三级 | 欧美三级不卡在线观看视频 | 亚洲狠狠综合久久 | 131的美女午夜爱爱爽爽视频 | 亚洲第一毛片 | 久久久国产精品网站 | 中文字幕国产一区 | 亚洲日本欧美产综合在线 | 成人区在线观看免费视频 | 亚洲午夜久久久久国产 | 国产美女白丝袜精品_a不卡 | 成人在线观看国产 | 日韩毛毛片 | 亚洲国产成人私人影院 | 欧美日韩一区二区三区久久 | 亚州人成网在线播放 | 欧美区在线 | 夜色sese| 久久91精品国产一区二区 | 国产精品一区在线免费观看 | 国产精品毛片在线大全 | 黄色免费在线网址 | 日本道综合一本久久久88 | 欧美88| 成人国产精品一级毛片天堂 | 在线观看aaa| 日韩欧美三级在线观看 | 免费观看日本特色做爰视频在线 | 日本在线观看免费视频网址 | 国产在线91精品 | 精品欧美一区二区三区精品久久 | 精品视频一区在线观看 | 日本美女黄网站 | 九九色视频在线观看 | 性色aⅴ在线观看swag | 亚洲欧美激情在线 |