电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Java Stax解析XML示例

瀏覽:10日期: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();//判斷節點類型是否是開始或者結束或者文本節點,之后根據情況及進行處理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來獲取是否是某種節點類型XMLEvent event = reader.nextEvent();if(event.isStartElement()) { //通過event.asxxx轉換節點 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的過濾方式,可以有效的過濾掉不用進行操作的節點,效率會高一些 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來獲取是否是某種節點類型XMLEvent event = reader.nextEvent();if(event.isStartElement()) { //通過event.asxxx轉換節點 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'); //創建文檔處理對象 DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder(); //通過DocumentBuilder創建doc的文檔對象 Document doc = db.parse(is); //創建XPath XPath xpath = XPathFactory.newInstance().newXPath(); //第一個參數就是xpath,第二參數就是文檔 NodeList list = (NodeList)xpath.evaluate('//book[@category=’WEB’]', doc,XPathConstants.NODESET); for(int i=0;i<list.getLength();i++) {//遍歷輸出相應的結果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'); //創建文檔處理對象 DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder(); //通過DocumentBuilder創建doc的文檔對象 Document doc = db.parse(is); //創建XPath XPath xpath = XPathFactory.newInstance().newXPath(); Transformer tran = TransformerFactory.newInstance().newTransformer(); tran.setOutputProperty(OutputKeys.ENCODING,'UTF-8'); tran.setOutputProperty(OutputKeys.INDENT, 'yes'); //第一個參數就是xpath,第二參數就是文檔 NodeList list = (NodeList)xpath.evaluate('//book[title=’Learning XML’]', doc,XPathConstants.NODESET); //獲取price節點 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修改節點 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示例的詳細內容,更多關于Java 解析XML的資料請關注好吧啦網其它相關文章!

標簽: Java
相關文章:
主站蜘蛛池模板: SPC工作站-连杆综合检具-表盘气动量仪-内孔缺陷检测仪-杭州朗多检测仪器有限公司 | 高空重型升降平台_高空液压举升平台_高空作业平台_移动式升降机-河南华鹰机械设备有限公司 | 高楼航空障碍灯厂家哪家好_航空障碍灯厂家_广州北斗星障碍灯有限公司 | 异噻唑啉酮-均三嗪-三丹油-1227-中北杀菌剂厂家 | 户外-组合-幼儿园-不锈钢-儿童-滑滑梯-床-玩具-淘气堡-厂家-价格 | 生产加气砖设备厂家很多,杜甫机械加气砖设备价格公道 | 光栅尺_Magnescale探规_磁栅尺_笔式位移传感器_苏州德美达 | VOC检测仪-甲醛检测仪-气体报警器-气体检测仪厂家-深恒安科技有限公司 | 接地电阻测试仪[厂家直销]_电缆故障测试仪[精准定位]_耐压测试仪-武汉南电至诚电力设备 | 密封圈_泛塞封_格莱圈-[东莞市国昊密封圈科技有限公司]专注密封圈定制生产厂家 | 实战IT培训机构_IT培训班选大学生IT技术培训中心_中公优就业 | PTFE接头|聚四氟乙烯螺丝|阀门|薄膜|消解罐|聚四氟乙烯球-嘉兴市方圆氟塑制品有限公司 | 高压贴片电容|贴片安规电容|三端滤波器|风华电容代理南京南山 | 澳门精准正版免费大全,2025新澳门全年免费,新澳天天开奖免费资料大全最新,新澳2025今晚开奖资料,新澳马今天最快最新图库-首页-东莞市傲马网络科技有限公司 | 山东活动策划|济南活动公司|济南公关活动策划-济南锐嘉广告有限公司 | 棕刚玉-白刚玉厂家价格_巩义市东翔净水材料厂 | 武汉印刷厂-不干胶标签印刷厂-武汉不干胶印刷-武汉标签印刷厂-武汉标签制作 - 善进特种标签印刷厂 | 立式壁挂广告机厂家-红外电容触摸一体机价格-华邦瀛 | 层流手术室净化装修-检验科ICU改造施工-华锐净化工程-特殊科室建设厂家 | 路面机械厂家| 香港新时代国际美容美发化妆美甲培训学校-26年培训经验,值得信赖! | 深圳诚暄fpc首页-柔性线路板,fpc柔性线路板打样生产厂家 | 卫浴散热器,卫浴暖气片,卫生间背篓暖气片,华圣格浴室暖气片 | 旅游规划_旅游策划_乡村旅游规划_景区规划设计_旅游规划设计公司-北京绿道联合旅游规划设计有限公司 | 深圳希玛林顺潮眼科医院(官网)│深圳眼科医院│医保定点│香港希玛林顺潮眼科中心连锁品牌 | 卫浴散热器,卫浴暖气片,卫生间背篓暖气片,华圣格浴室暖气片 | 泰国专线_泰国物流专线_广州到泰国物流公司-泰廊曼国际 | 沉降天平_沉降粒度仪_液体比重仪-上海方瑞仪器有限公司 | 合肥白癜风医院_[治疗白癜风]哪家好_合肥北大白癜风医院 | 无纺布包装机|径向缠绕包装机|缠绕膜打包机-上海晏陵智能设备有限公司 | 光伏支架成型设备-光伏钢边框设备-光伏设备厂家 | 合肥钣金加工-安徽激光切割加工-机箱机柜加工厂家-合肥通快 | 丹佛斯变频器-Danfoss战略代理经销商-上海津信变频器有限公司 | 定制/定做衬衫厂家/公司-衬衫订做/订制价格/费用-北京圣达信 | 华禹护栏|锌钢护栏_阳台护栏_护栏厂家-华禹专注阳台护栏、楼梯栏杆、百叶窗、空调架、基坑护栏、道路护栏等锌钢护栏产品的生产销售。 | 锂离子电池厂家-山东中信迪生电源 | 海外仓系统|国际货代系统|退货换标系统|WMS仓储系统|海豚云 | 移动机器人产业联盟官网| 交通信号灯生产厂家_红绿灯厂家_电子警察监控杆_标志杆厂家-沃霖电子科技 | 螺旋绞龙叶片,螺旋输送机厂家,山东螺旋输送机-淄博长江机械制造有限公司 | 消泡剂-水处理消泡剂-涂料消泡剂-切削液消泡剂价格-东莞德丰消泡剂厂家 |