欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

XML是什么

這篇文章主要講解了“XML是什么”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“XML是什么”吧!

公司主營業(yè)務(wù):成都做網(wǎng)站、網(wǎng)站制作、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)公司是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)公司推出和縣免費做網(wǎng)站回饋大家。

目錄結(jié)構(gòu):

  1. 什么是XML

  2. 解析XML

    1. 解析XML的兩種方式

    2. 使用dom4j解析xml

      1. dom4j的部分API

      2. 打印一個XML文件的全部內(nèi)容

    3. 在dom4j中應(yīng)用XPath解析XML

      1. 相關(guān)的部分API

      2. XPath的路徑表達式

      3. 通配符

      4. 謂語

  3. 使用java寫一個XMl文件

    1. 將一個帶有書籍信息的List集合解析為XML文件

  4. Schema和DTD的區(qū)別

1 什么是XML

XML(eXtensible  markup language) 是一種可擴展的標記語言 ,即使可以自定義標簽的語言。

2 解析XML

2.1 解析的兩種方式

XML的解析分為兩種方式,分別是SAX和DOM。

DOM:(Document Object Model,就是文檔對象模型),是W3C組織推薦的處理XML的一種方式。使用該方式解析XML文檔,會把文檔中的所有元素,按照其出現(xiàn)的層次關(guān)系,在內(nèi)存中構(gòu)造出樹形結(jié)構(gòu)。因此對內(nèi)存的壓力大,解析熟讀慢,優(yōu)點就是可以遍歷和修改節(jié)點的內(nèi)容。

SAX:(Simple API for XML) 是一種XML解析的替代方法。相比較于DOM,解析速度更快,內(nèi)存的壓力更小;缺點就是不能修改節(jié)點的內(nèi)容。

2.2 使用dom4j解析XML

在使用dom4j解析XML之前需要導(dǎo)入相關(guān)的工具包,比如筆者的: dom4j-1.6.1.jar 包

2.2.1 dom4j的API

//創(chuàng)建SAXReader,是dom4j包提供的解析器SAXReader reader=new SAXReader();//讀取指定的文件Document doc=reader.read(new File(filename));

Document
  Document getRootElement()           用于獲取根元素

Element
  Element element(String name)        獲取元素下指定名稱的子元素
  List<Element> elements()            獲取元素下所有的子元素
  String getName()                    獲取元素名
  String getText()                    獲取元素文本內(nèi)容
  String elementText(String name)     獲取子元素文本內(nèi)容
  Attribute attribute(String)         獲取元素的屬性
  String attributeValue(String name)  獲取元素的屬性值

Attribute
  String getName()                    獲取屬性的名字
  String getValue()                   獲取屬性的值

2.2.2 打印一個XML文件的全部內(nèi)容

pricties.xml文件直接位于項目下

XML是什么XML是什么

<?xml version="1.0" encoding="utf-8" ?><books id="a">
  <book id="b"><name id="c_1" name="c_2">三國演繹</name><author id="d_1" name="d_2" >羅貫中</author><price id="e">58.8</price>
  </book>
  <book id="f_1" name="f_2"><name id="g">水滸傳</name><author id="h">施耐庵</author><price id="i">49.8</price>
  </book>
  <book id="j_1" name="j_2"><name id="k">西游記</name><author id="l">吳承恩</author><price id="m">100.1</price><order>1</order>
  </book></books>

pricties.xml

XML是什么XML是什么

import java.io.File;import java.util.List;import org.dom4j.Attribute;import org.dom4j.Document;import org.dom4j.Element;import org.dom4j.io.SAXReader;public class ParseXML {public static void main(String[] args) {//創(chuàng)建SAXReader對象SAXReader saxr=new SAXReader();
        Document  docu=null;try{//讀取指定的文件,相對于項目路徑docu=saxr.read(new File("pricties.xml"));//獲得元素的文件的根節(jié)點Element e=docu.getRootElement();
            
            searchAllElement(e);
        }catch(Exception e){
            e.printStackTrace();
        }
    }    public static void searchAllElement(Element e){//獲得當前元素下的所有子元素,并存儲到集合中List<Element> elements=e.elements();
        
        System.out.print("<"+e.getName());//打印開始標記List<Attribute> atrs=e.attributes();//打印該標記下的所有屬性for(Attribute att:atrs){
            System.out.print(" "+att.getName()+"=\""+att.getValue()+"\"");
        }
        System.out.println(">");        //如果集合的大小為0,表示該集合下沒有子元素了if(elements.size()==0){
            System.out.println(e.getText());//打印文本信息System.out.println("</"+e.getName()+">");//打印結(jié)束標記return;//退出當前層方法        }        //遞歸每一個子元素for(Element ele:elements){
            searchAllElement(ele);
        }
        System.out.println("</"+e.getName()+">");//打印結(jié)束標記    }

}

parseXML.xml

2.3 在dom4j中應(yīng)用XPath解析XML

首先需要在dom4j基礎(chǔ)上引入相應(yīng)的jar包,比如讀者的: jaxen-1.1-beta-6.jar

2.3.1 XPath的API

Document
  List<Node> selectNodes(String xpath)
  Node selectSingleNode(String xpath)

2.3.2 XPath的路徑表達式

2.3.2.1 XPath的路徑表達式規(guī)則

XML是什么

2.3.2.2 XPath的路徑表達式應(yīng)用案例

XML是什么

2.3.3 通配符

2.3.3.1 通配符規(guī)則

XML是什么

2.3.3.2 通配符應(yīng)用案例

XML是什么

2.3.4 謂語

2.3.4.1 謂語規(guī)則

謂語是用來查找某個特定的節(jié)點或是包含某個指定的值的節(jié)點
謂語被嵌在方括號中

2.3.4.2 謂語應(yīng)用案例

XML是什么

3 java寫XML文件

3.1 將一個帶有書籍信息的List集合解析為XML文件

XML是什么XML是什么

package com.xdl.xml;public class Book {private String name;private String author;private String price;public Book() {super();
    }public Book(String name, String author, String price) {super();
        setName(name);
        setAuthor(author);
        setPrice(price);
    }/** * @return the name     */public String getName() {return name;
    }/** * @param name the name to set     */public void setName(String name) {this.name = name;
    }/** * @return the author     */public String getAuthor() {return author;
    }/** * @param author the author to set     */public void setAuthor(String author) {this.author = author;
    }/** * @return the price     */public String getPrice() {return price;
    }/** * @param price the price to set     */public void setPrice(String price) {this.price = price;
    }
}

Book.java

XML是什么XML是什么

package com.xdl.xml;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.util.ArrayList;import java.util.List;import org.dom4j.Document;import org.dom4j.DocumentHelper;import org.dom4j.Element;import org.dom4j.io.XMLWriter;public class WriteXML {public static void main(String[] args) {//創(chuàng)建一個Book集合用于存儲書籍信息List<Book> list_books=new ArrayList<Book>();//插入書籍信息for(int i=0;i<6;i++){
            Book book=new Book("jame"+i,"author"+i,""+i);
            list_books.add(book);
        }        //創(chuàng)建一個文檔對象Document doc=DocumentHelper.createDocument();//創(chuàng)建一個根節(jié)點Element books=DocumentHelper.createElement("books");        //獲得書籍集合的大小int size=list_books.size();for(int i=0;i<size;i++){//創(chuàng)建一個book節(jié)點Element book=books.addElement("book");//創(chuàng)建一個name節(jié)點Element name=book.addElement("name");//創(chuàng)建一個author節(jié)點Element author=book.addElement("author");//創(chuàng)建一個price節(jié)點Element price=book.addElement("price");
            name.setText(list_books.get(i).getName());
            author.setText(list_books.get(i).getAuthor());
            price.setText(list_books.get(i).getPrice());
        }//設(shè)置文檔根節(jié)點        doc.setRootElement(books);        try {//如果文件不存在,會自動創(chuàng)建FileOutputStream   fos = new FileOutputStream(new File("books.xml"));
            XMLWriter  xmlw = new XMLWriter(fos);
            xmlw.write(doc);
            xmlw.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

WriteXML.java

4 Schema和DTD的區(qū)別

Schema是對XML文檔結(jié)構(gòu)的定義和描述,其主要的作用是用來約束XML文件,并驗證XML文件有效性。DTD的作用是定義XML的合法構(gòu)建模塊,它使用一系列的合法元素來定義文檔結(jié)構(gòu)。它們之間的區(qū)別有下面幾點:

1、Schema本身也是XML文檔,DTD定義跟XML沒有什么關(guān)系,Schema在理解和實際應(yīng)用有很多的好處。

2、DTD文檔的結(jié)構(gòu)是“平鋪型”的,如果定義復(fù)雜的XML文檔,很難把握各元素之間的嵌套關(guān)系;Schema文檔結(jié)構(gòu)性強,各元素之間的嵌套關(guān)系非常直觀。

3、DTD只能指定元素含有文本,不能定義元素文本的具體類型,如字符型、整型、日期型、自定義類型等。Schema在這方面比DTD強大。

4、Schema支持元素節(jié)點順序的描述,DTD沒有提供無序情況的描述,要定義無序必需窮舉排列的所有情況。Schema可以利用xs:all來表示無序的情況。

5、對命名空間的支持。DTD無法利用XML的命名空間,Schema很好滿足命名空間。并且,Schema還提供了include和import兩種引用命名空間的方法。

感謝各位的閱讀,以上就是“XML是什么”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對XML是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

名稱欄目:XML是什么
URL地址:http://chinadenli.net/article8/jgghop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗、做網(wǎng)站、品牌網(wǎng)站建設(shè)、定制網(wǎng)站、建站公司、外貿(mào)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管
国产传媒高清视频在线| 日韩精品中文字幕亚洲| 国产老熟女乱子人伦视频| 国产精品美女午夜福利| 国产精品亚洲精品亚洲| 丰满人妻一二区二区三区av| 亚洲一区二区久久观看| 亚洲视频一区自拍偷拍另类| 国产一区二区三区香蕉av| 人妻久久一区二区三区精品99| 激情内射日本一区二区三区| 午夜小视频成人免费看| 国产国产精品精品在线| 国产免费一区二区不卡| 日韩视频在线观看成人| 一区二区三区18禁看| 天堂网中文字幕在线视频| 白白操白白在线免费观看| 免费一级欧美大片免费看| 91久久精品中文内射| 久久香蕉综合网精品视频| 日韩亚洲精品国产第二页| 国产精品成人免费精品自在线观看| 日本在线视频播放91| 午夜视频成人在线观看| 午夜视频成人在线观看| 午夜精品在线观看视频午夜| 日韩人妻毛片中文字幕| 美国女大兵激情豪放视频播放| 精品人妻一区二区三区免费| 真实国产乱子伦对白视频不卡| 国产内射一级一片内射高清视频| 国产乱久久亚洲国产精品| 日本本亚洲三级在线播放| 欧美黑人精品一区二区在线| 精品人妻一区二区三区免费| 99久久精品国产日本| 国产一级特黄在线观看| 日韩一区二区三区免费av| 成人午夜爽爽爽免费视频| 福利视频一区二区在线|