這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)什么是XML,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
創(chuàng)新互聯(lián)公司是專業(yè)的婁煩網(wǎng)站建設(shè)公司,婁煩接單;提供網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行婁煩網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!1、XML : extensible markup language 可擴(kuò)展標(biāo)記語(yǔ)言 version="1.0"
可擴(kuò)展:所有的標(biāo)簽都是自定義的
功能:數(shù)據(jù)存儲(chǔ)
配置文件
數(shù)據(jù)傳輸
html 與 xml 區(qū)別
HTML語(yǔ)法松散,xml語(yǔ)法嚴(yán)格
html做頁(yè)面展示,xml做數(shù)據(jù)存儲(chǔ)
Html所有標(biāo)簽都是預(yù)定義的,xml所有標(biāo)簽都是自定義的
2、xml語(yǔ)法:
文檔聲明
version 版本號(hào) 固定值1.0
encoding 指定文檔的碼表 默認(rèn)值為iso-8859-1
standalone 指定文檔是否獨(dú)立 yes 或 no
必須寫(xiě)在xml文檔的第一行
寫(xiě)法:<?xml version = "1.0"?>
屬性
元素 xml文檔中的標(biāo)簽
元素名稱區(qū)分大小寫(xiě)
數(shù)字不能開(kāi)頭
文檔中必須有且只能有一個(gè)根元素
元素需要正確閉合 <body></body> <br/>
元素需要正確嵌套
元素名稱要遵守
文本
<!CDATA[數(shù)據(jù)內(nèi)容]>
轉(zhuǎn)義字符 >;
CDATA 里邊的數(shù)據(jù)會(huì)原樣顯示
屬性
屬性值必須用引號(hào)引起來(lái),單雙引號(hào)都行
注釋
<!-- -->
處理指令:現(xiàn)在基本不用
<?xml-stylesheet type="text/css" href="1.css"?>
3、XML約束
約束就是xml的書(shū)寫(xiě)規(guī)則
約束的分類:
導(dǎo)入xsd約束文檔
編寫(xiě)根標(biāo)簽
引入實(shí)例名稱空間 xmlns:xsi="www.w3.org/2001/XMLSchema-instance"
引入名稱空間 xsi:schemaLocation="www.itcast.cn/xml student.xsd"
引入默認(rèn)的名稱空間
student.xsd
student.xml
<?xml version="1.0"?> <xsd:schema xmlns="www.itheima.cn/xml" xmlns:xsd="www.w3.org/2001/XMLSchema" targetNamespace="www.itheima.cn/xml" elementFormDefault="qualified"> <xsd:element name="students" type="studentsType"/> <xsd:complexType name="studentsType"> <xsd:sequence> <xsd:element name="student" type="studentType" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="studentType"> <xsd:sequence> <xsd:element name="name" type="xsd:string"/> <xsd:element name="age" type="ageType" /> <xsd:element name="sex" type="sexType" /> </xsd:sequence> <xsd:attribute name="number" type="numberType" use="required"/> </xsd:complexType> <xsd:simpleType name="sexType"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="male"/> <xsd:enumeration value="female"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="ageType"> <xsd:restriction base="xsd:integer"> <xsd:minInclusive value="0"/> <xsd:maxInclusive value="256"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="numberType"> <xsd:restriction base="xsd:string"> <xsd:pattern value="itheima_\d{4}"/> </xsd:restriction> </xsd:simpleType> </xsd:schema> <?xml version="1.0" encoding="UTF-8" ?>
<!--
1、編寫(xiě)根標(biāo)簽
2、引入實(shí)例名稱空間 xmlns:xsi="www.w3.org/2001/XMLSchema-instance"
3、引入名稱空間 xsi:schemaLocation="www.itcast.cn/xml student.xsd"
4、引入默認(rèn)的名稱空間
-->
<students xmlns="www.itheima.cn/xml" xsi:schemaLocation="www.itheima.cn/xml student.xsd" xmlns:xsi="www.w3.org/2001/XMLSchema-instance" > <student number="itheima_1001"> <name>asfd</name> <age>12</age> <sex>male</sex> </student> </students> <students xmlns:itheima="www.itheima.cn/xml" xsi:schemaLocation="www.itheima.cn/xml student.xsd" xmlns:xsi="www.w3.org/2001/XMLSchema-instance" > <itheima:student number="itheima_1001"> <itheima:name>asfd</itheima:name> <itheima:age>12</itheima:age> <theima:sex>male</itheima:sex> </itheima:student> </itheima:students>
內(nèi)部dtd 在xml內(nèi)部定義dtd
外部dtd 在外部文件中定義dtd
Student.dtd
student.xml
本地dtd文件 <!DOCTYPE students SYSTEM "student.dtd">
網(wǎng)絡(luò)dtd文件 <!DOCTYPE students PUBLIC "名稱空間" “student.dtd”>
<!ELEMENT students (student*) > <!ELEMENT student (name,age,sex)> <!ELEMENT name (#PCDATA)> <!ELEMENT age (#PCDATA)> <!ELEMENT sex (#PCDATA)> <!ATTLIST student number ID #REQUIRED> 唯一的,必須的 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE students SYSTEM "student.dtd"> <students> <student number="s0001" > <name>zs</name> <age>abc</age> <sex>yao</sex> </student> </students>
dtd 約束不嚴(yán)謹(jǐn)
schema
4、XML解析
解析XML可以做:
如果xml作為配置文件:讀取
如果xml作為傳輸文件:寫(xiě)、讀
XML解析思想:
優(yōu)點(diǎn):不占內(nèi)存,速度快
缺點(diǎn):只能讀取,不能回寫(xiě)
優(yōu)點(diǎn):因?yàn)樵趦?nèi)存中會(huì)形成dom樹(shù),可以對(duì)dom樹(shù)進(jìn)行增刪改查
缺點(diǎn):dom樹(shù)非常占內(nèi)存,解析速度慢
Document Element Text Attribute Comment
DOM:將文檔加載到內(nèi)存,形成一棵dom樹(shù)(document對(duì)象),將文檔的各個(gè)組成部分封裝為一些對(duì)象
SAX:逐行讀取,基于事件驅(qū)動(dòng)
xml常用的解析器
定義了一種規(guī)則
使用方法
使用步驟
XPath:
public classTestXPath3 { @Test publicvoidtest()throwsException{ SAXReaderread= new SAXReader(); Documentdocument= read.read("src/Dom4jTest.xml"); Listnodes= document.selectNodes("/bookstore//book/title"); for(inti= 0;i< nodes.size();i++) { Nodenode= (Node)nodes.get(i); System.out.println(node.getText()); } } }
selectSingleNode()
selectNodes()
注意:要導(dǎo)包 jaxen...jar
創(chuàng)建解析器 SAXReader reader = new SAXReader()
解析xml 獲得document對(duì)象 Document document = reader.read(url)
// nodename 選取此節(jié)點(diǎn)。
// / 從根節(jié)點(diǎn)選取。
// // 從匹配選擇的當(dāng)前節(jié)點(diǎn)選擇文檔中的節(jié)點(diǎn),而不考慮它們的位置。
// .. 選取當(dāng)前節(jié)點(diǎn)的父節(jié)點(diǎn)。
// @ 選取屬性。
// [@屬性名] 屬性過(guò)濾
// [標(biāo)簽名] 子元素過(guò)濾
@Test
//遍歷所有元素節(jié)點(diǎn)
publicvoidtest2()throwsException{ //創(chuàng)建一個(gè)xml解析對(duì)象 SAXReaderreader= new SAXReader(); //把xml文檔加載到document對(duì)象中 Documentdocument= reader.read("src/Book.xml"); Elementroot= document.getRootElement(); treeWalk(root); } privatevoidtreeWalk(Elementele){ //輸出當(dāng)前節(jié)點(diǎn)的名字 System.out.println(ele.getName()); //ele.nodeCount()得到當(dāng)前節(jié)點(diǎn)的所有子節(jié)點(diǎn)的數(shù)量 for(inti= 0;i<ele.nodeCount();i++){ //取出下標(biāo)為i的節(jié)點(diǎn) Nodenode= ele.node(i); //判斷當(dāng)前節(jié)點(diǎn)是否為標(biāo)簽 if(nodeinstanceofElement){ //把node強(qiáng)轉(zhuǎn)為標(biāo)簽(Element) treeWalk((Element)node); } } } }
public classTestDom4j { @Test publicvoidtest1()throwsException{ //創(chuàng)建一個(gè)xml解析對(duì)象 SAXReaderreader= new SAXReader(); //把xml文檔加載到document對(duì)象中 Documentdocument= reader.read("src/Book.xml"); Elementroot= document.getRootElement(); // Element bookNode = root.element("書(shū)"); // System.out.println(bookNode.getName()); //得到當(dāng)前節(jié)點(diǎn)所有的子節(jié)點(diǎn) Listlist= root.elements(); //得到第二本書(shū)對(duì)象 ElementsecondBook= (Element)list.get(1); //得到當(dāng)前節(jié)點(diǎn)的文本內(nèi)容 Stringname= secondBook.element("書(shū)名").getText(); System.out.println(name); }
導(dǎo)入jar包 dom4j.jar
創(chuàng)建解析器
解析xml 獲得document對(duì)象
SAXReader reader = new SAXReader()
Document document = reader.read(url)
JAXP sun公司提供的解析 支持dom和sax
JDOM
DOM4J dom for java民間方式,但是是事實(shí)方式,非常好,支持dom
解析xml
XPATH 專門用于查詢
上述就是小編為大家分享的什么是XML了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
標(biāo)題名稱:什么是XML-創(chuàng)新互聯(lián)
標(biāo)題鏈接:http://muchs.cn/article12/dooegc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、手機(jī)網(wǎng)站建設(shè)、定制開(kāi)發(fā)、ChatGPT、網(wǎng)站設(shè)計(jì)、營(yíng)銷型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容