亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

xml中的schema約束的以及用jaxp通過sax方式解析xml文檔和dom4j解析xml文檔 ——Web部分第八天

2019-11-14 12:58:08
字體:
來源:轉載
供稿:網友

xml中的schema約束的以及用jaxp通過sax方式解析xml文檔和dom4j解析xml文檔 ——Web部分第八天

1. schema約束

* Scheme約束是分與合xml語法的約束文件,擴展名為.xsd* Scheme約束語義嚴格,支持多種數據類型的定義。* 但比較dtd更加復雜。

2. 用jaxp通過sax方式解析xml文檔

* sax方式:事件驅動,邊讀取邊解析* 使用的類在javax.xml.parsers下* sax解析只能完成查詢的操作。* 缺陷:方法是逐行解析,并且連同換行空格的都會解析。注:換行的會被當作文本。//關鍵代碼 ;public class XmlBySax{ public static void main(String[] args) throws Exception { SAXParserFactory saxParserFactory = SAXParserFactory.newInstance() ; SAXParser saxParser = saxParserFactory.newSAXParser() ; saxParser.parse(new File("src/person.xml") , new MyDefaultHandler()); }}//通過創建自己的sax解析類繼承DefaultHandler重寫其中的三個方法,來實現具體的查詢操作。//該類為事件處理器。class MyDefaultHandler extends DefaultHandler { //標簽開始時自動執行的方法 @Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { System.out.

小知識

* 導包操作 - ecplise下在目錄下建立lib文件夾 - 將jar包放到lib下 - 右鍵jar,build path -- add to buildpath 。* 設置java虛擬機的運行大小

自定義工具包

package com.xml.util;import java.io.FileOutputStream;import java.io.IOException;import org.dom4j.Document;import org.dom4j.io.OutputFormat;import org.dom4j.io.SAXReader;import org.dom4j.io.XMLWriter;public class DocumentUtil { public static final String PATH= "src/person.xml" ; public static Document getDocument() { Document document = null ; try { SAXReader saxReader = new SAXReader() ; document = saxReader.read(PATH) ; } catch (Exception e) { e.printStackTrace() ; } return document ; } public static void writerXML(Document document) { XMLWriter xmlWriter = null ; try { xmlWriter = new XMLWriter(new FileOutputStream(PATH) , OutputFormat.createPrettyPrint()) ; xmlWriter.write(document) ; } catch (Exception e) { e.printStackTrace() ; }finally { try { xmlWriter.close() ; } catch (IOException e) { e.printStackTrace(); } } }}

3. dom4j解析xml文檔

* dom4j是開源jar包。* dom4j 中 document, element , node , 都是接口。* 回寫的類XMLWriter。* dom4j節點的管理實現的是List接口,所以可以按照List接口的方法遍歷等操作* 創建新節點的類為DocumentHelper.createElement("") ; 直接創建新節點的方法 父節點.addElement("") ;* OutputFormat為格式化輸出,可以設置輸出的格式,字符集等等。//代碼沒有導包。public class XmlByDom4j { public static void main(String[] args) throws Exception { //selectName(); //selectOneName() ; //addElement() ; //writerElement(1); //modifyDocument("90") ; //removeElement() ; getValues() ; } /* * 獲取xml標簽的屬性值 */ private static void getValues(){ Document document = DocumentUtil.getDocument() ; Element p1 = document.getRootElement().element("p1") ; String name = p1.attributeValue("id") ; System.out.println(name) ; } /* * 實現xml中的刪除操作 */ private static void removeElement(){ Document document = DocumentUtil.getDocument() ; Element root = document.getRootElement() ; Element p1 = root.element("p1") ; Element school = p1.element("school") ; p1.remove(school) ; DocumentUtil.writerXML(document) ; } /* * 實現xml中的修改操作 */ private static void modifyDocument(String text){ Document document = DocumentUtil.getDocument() ; Element root = document.getRootElement() ; Element p1 = root.element("p1") ; Element age = p1.element("age") ; age.setText(text) ; DocumentUtil.writerXML(document) ; } /* * 指定位置添加 */ private static void writerElement(int index) throws Exception { Element root = new SAXReader().read("src/person.xml").getRootElement() ; Element p1 = root.element("p1") ; List<Element> list = p1.elements() ; Element school = DocumentHelper.createElement("school") ; school.setText("edu.nongda.www") ; list.add(index, school) ; XMLWriter xmlWriter = new XMLWriter(new FileOutputStream("src/person.xml") , OutputFormat.createPrettyPrint()) ; xmlWriter.write(root) ; xmlWriter.close() ; } /* *實現xml中添加操作,直接在末尾節點添加 */ private static void addElement() throws Exception { Element root = new SAXReader().read("src/person.xml").getRootElement() ; Element p1 = root.element("p1") ; Element sex = p1.addElement("sex") ; sex.addText("nan") ; /*OutputFormat format = OutputFormat.createPrettyPrint() ; //這里可以指定輸出的字符集格式字符集 format.setEncoding("utf-8 ") ;*/ XMLWriter xmlWriter = new XMLWriter(new FileOutputStream("src/person.xml") , OutputFormat.createPrettyPrint()) ; xmlWriter.write(root) ; xmlWriter.close() ; } /* * 得到xml中第一個name的值 */ private static void selectOneName() throws Exception { SAXReader saxReader = new SAXReader() ; Document document = saxReader.read("src/person.xml") ; Element root = document.getRootElement() ; /*List<Element> p1 = root.elements("p1") ; Element p1One = p1.get(0) ; Element name = p1One.element("name") ; System.out.println(name.getText());*/ Element p1 = root.element("p1") ; Element name = p1.element("name") ; System.out.println(name.getName() + ":" + name.getText()) ; } /* * 遍歷xml中文件下的內容。 */ private static void selectName() throws DocumentException { // 1.得到dom4j解析器 SAXReader saxReader = new SAXReader() ; Document document = saxReader.read("src/person.xml") ; //得到根節點 Element root = document.getRootElement() ; //得到子節點下的集合 List<Element> p1 = root.elements("p1") ; //遍歷集合元素 for(Element element : p1){ //打印輸出 Element name = element.element("name") ; System.out.println(name.getText()) ; } }}

4. XPATH的操作

* xpath是dom4j支持的擴展jar包,需要導入jar包。* xpath有很多種形式可以直接提取相應的標簽,可以通過API查詢* 得到的是Node節點對接點進行操作。* dom4j中有兩個方法支持操作selectNodes("xpath格式") ;獲取多個節點,selectSingleNode("xpath格式"); 獲取單個節點。public class XmlByXpath { public static void main(String[] args) { //forEachElement(); selectId() ; } /* * 使用xpath得到標簽 ; */ private static void forEachElement() { Document document = DocumentUtil.getDocument() ; List<Node> list = document.selectNodes("http://name") ; for(Node tmp : list){ System.out.println(tmp.getText()) ; } } private static void selectId() { Document document = DocumentUtil.getDocument() ; Node name = document.selectSingleNode("http://p1[@id='id1']/name") ; System.out.println(name.getText()) ; }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
xvideos亚洲人网站| 欧美精品videos性欧美| 国产精品亚发布| 亚洲成年人在线| 亚洲国产精品系列| 欧美激情中文网| 亚洲精品自在久久| 精品久久久久久久久久久久久久| 最近2019中文字幕第三页视频| 国产精品一区二区三区免费视频| 久久免费视频在线观看| 色yeye香蕉凹凸一区二区av| 国产玖玖精品视频| 精品久久久久久电影| 日韩国产精品亚洲а∨天堂免| 国产精品极品美女在线观看免费| 色久欧美在线视频观看| 亚洲激情自拍图| 久久久成人精品视频| 精品视频在线播放色网色视频| 中文字幕久久久av一区| 日韩经典中文字幕在线观看| 久久99国产精品自在自在app| 日产精品99久久久久久| 国产精品嫩草视频| 国产日韩欧美影视| 久久亚洲精品毛片| 亲爱的老师9免费观看全集电视剧| 亚洲国产精品电影在线观看| 91产国在线观看动作片喷水| 久久久久久久久久av| 色播久久人人爽人人爽人人片视av| 国产午夜精品一区二区三区| 国产中文欧美精品| 国产精品第一页在线| 91av视频在线免费观看| 日韩在线欧美在线| 91高清在线免费观看| 久久成人av网站| 欧美极品第一页| 色偷偷88888欧美精品久久久| 日韩第一页在线| 久久久久久网址| 91黑丝在线观看| 国产在线播放不卡| 日韩电影免费在线观看中文字幕| 国产69精品久久久久99| 在线色欧美三级视频| 欧美中文字幕在线| 久久精品视频导航| 欧美日韩国产二区| 丁香五六月婷婷久久激情| 亚洲国产一区自拍| www.欧美精品一二三区| 中文国产成人精品| 中文字幕亚洲二区| 国产在线拍偷自揄拍精品| 91香蕉嫩草影院入口| 性色av一区二区咪爱| 国产精品一区av| 色综合久久久久久中文网| 992tv在线成人免费观看| 欧美亚洲在线视频| 免费91麻豆精品国产自产在线观看| 亚洲精品成a人在线观看| www.日本久久久久com.| 精品国产乱码久久久久酒店| 粗暴蹂躏中文一区二区三区| 欧美—级高清免费播放| 欧美成人午夜免费视在线看片| 97精品久久久中文字幕免费| 日本国产一区二区三区| 98精品国产高清在线xxxx天堂| 亚洲欧洲免费视频| 精品magnet| 色偷偷av一区二区三区乱| 欧美日韩精品在线播放| 91色琪琪电影亚洲精品久久| 深夜福利亚洲导航| 日韩精品中文字幕有码专区| 亚洲日韩欧美视频一区| 久久天天躁狠狠躁老女人| 国产经典一区二区| 亚洲亚裔videos黑人hd| 亚洲国产成人av在线| 中文字幕免费精品一区高清| 精品国模在线视频| 国产成人精品视频| 国产精品亚洲美女av网站| 国产欧亚日韩视频| 亚洲香蕉成视频在线观看| 日韩电影中文字幕在线观看| 欧美性xxxxx极品娇小| 日韩精品视频在线| 操人视频在线观看欧美| 97人人模人人爽人人喊中文字| 欧美精品在线免费播放| 亚洲国产日韩欧美综合久久| 精品国产电影一区| 亚洲高清免费观看高清完整版| 欧美日韩国产二区| 欧美最近摘花xxxx摘花| 亚洲视频在线观看网站| 亚洲福利影片在线| 91亚洲一区精品| 国产免费一区视频观看免费| 欧美理论电影网| 国产精品影院在线观看| 久久精品亚洲热| 黑人巨大精品欧美一区二区免费| 亚洲v日韩v综合v精品v| 亚洲欧洲高清在线| 国产精品91免费在线| 亚洲成人网久久久| 午夜美女久久久久爽久久| 亚洲国产精品免费| 国产成人福利网站| 97精品一区二区视频在线观看| 欧美性猛交xxxxx免费看| 日韩高清免费在线| 成人av.网址在线网站| 欧美性生交xxxxx久久久| 2019中文字幕全在线观看| 国内成人精品视频| 成人免费大片黄在线播放| 国产日韩欧美91| 欧美激情三级免费| 久久九九国产精品怡红院| 欧美日韩人人澡狠狠躁视频| 国产亚洲精品成人av久久ww| 久久精品视频导航| 在线观看欧美www| 7m第一福利500精品视频| 成人国产精品久久久| 欧美日本亚洲视频| 8090理伦午夜在线电影| 国产午夜精品一区二区三区| 国产成人一区二区三区| 亚洲成人教育av| 国产精品69精品一区二区三区| 亚洲深夜福利视频| 成人午夜激情网| 国产一区二区三区18| 91超碰中文字幕久久精品| 午夜精品视频在线| 亚洲精品国精品久久99热一| 日韩欧美国产高清91| 亚洲欧美一区二区三区四区| 黄色成人在线播放| 国产欧美在线看| 2019中文字幕在线免费观看| 亚洲精美色品网站| 91成人免费观看网站| 亚洲三级 欧美三级| 国产免费观看久久黄| 日本午夜人人精品| 日韩精品免费在线播放| 中文字幕亚洲一区在线观看| 日韩av在线免费观看一区| 亚洲成人a级网| 亚洲国产精彩中文乱码av在线播放| 久久精品国产2020观看福利| 最近2019年中文视频免费在线观看| 51精品在线观看|