搜尋
首頁後端開發XML/RSS教程什麼是XML? xml的實例講解

目錄結構:


contents structure [-]
  1. ##什麼是XML

  2. 解析XML

    1. 解析XML的兩種方式

    2. 使用dom4j解析xml

      1. dom4j的部分API

      2. #列印一個XML檔案的全部內容

      1. ##在dom4j中應用XPath解析XML
      2. 相關的部分API
  3. XPath的路徑表達式

    1. 通配符

    謂語
  4. #使用java寫一個XMl檔案

將一個帶有書籍資訊的List集合解析為XML檔

Schema和DTD的差異

參考文章

1 什麼是XML

XML(eXtensible  markup language) 是可擴充的標記語言,即使可以自訂標籤的語言。 2 解析XML

2.1 解析的兩種方式

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

DOM:(Document Object Model,就是文件物件模型),是W3C組織推薦的處理XML的一種方式。使用此方式解析XML文檔,會把文檔中的所有元素,依照其出現的層次關係,在記憶體中構造出樹狀結構。因此對記憶體的壓力大,解析熟讀慢,優點就是可以遍歷修改節點的內容。

SAX:(Simple API for XML) 是一種XML解析的替代方法。相比較於DOM,解析速度更快,記憶體的壓力更小;缺點就是不能修改節點的內容。

2.2 使用dom4j解析XML在使用dom4j解析XML之前需要匯入相關的工具包,例如筆者的: 
dom4j-1.6.1.jar
套件2.2.1 dom4j的API
//创建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()                    获取元素文本内容
  String elementText(String name)     获取子元素文本内容
  Attribute attribute(String)         获取元素的属性
  String attributeValue(String name)  获取元素的属性值

Attribute
  String getName()                    获取属性的名字
  String getValue()                   获取属性的值</element>
2.2.2 列印一個XML檔案的全部內容
pricties.xml檔案直接位於專案下

<?xml  version="1.0" encoding="utf-8" ?><books>
  <book><name>三国演绎</name><author>罗贯中</author><price>58.8</price>
  </book>
  <book><name>水浒传</name><author>施耐庵</author><price>49.8</price>
  </book>
  <book><name>西游记</name><author>吴承恩</author><price>100.1</price><order>1</order>
  </book></books>

pricties.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) {//创建SAXReader对象SAXReader saxr=new SAXReader();
        Document  docu=null;try{//读取指定的文件,相对于项目路径docu=saxr.read(new File("pricties.xml"));//获得元素的文件的根节点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(" 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()+">");//打印结束标记return;//退出当前层方法        }        //递归每一个子元素for(Element ele:elements){
            searchAllElement(ele);
        }
        System.out.println(""+e.getName()+">");//打印结束标记    }

}</element>
######parseXML.xml #########2.3 在dom4j中應用XPath解析XML######首先需要在dom4j基礎上引入對應的jar包,例如讀者的: ###jaxen-1.1-beta-6. jar### ######2.3.1 XPath的API######
Document
  List<node> selectNodes(String xpath)
  Node selectSingleNode(String xpath)</node>
###

2.3.2 XPath的路径表达式

2.3.2.1 XPath的路径表达式规则

2.3.2.2 XPath的路径表达式应用案例

2.3.3 通配符

2.3.3.1 通配符规则

2.3.3.2 通配符应用案例

2.3.4 谓语

2.3.4.1 谓语规则

谓语是用来查找某个特定的节点或是包含某个指定的值的节点
谓语被嵌在方括号中

2.3.4.2 谓语应用案例

3 java写XML文件

3.1 将一个带有书籍信息的List集合解析为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
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) {//创建一个Book集合用于存储书籍信息List<book> list_books=new ArrayList<book>();//插入书籍信息for(int i=0;i</book></book>
WriteXML.java

 4 Schema和DTD的区别

  Schema是对XML文档结构的定义和描述,其主要的作用是用来约束XML文件,并验证XML文件有效性。DTD的作用是定义XML的合法构建模块,它使用一系列的合法元素来定义文档结构。它们之间的区别有下面几点:

1、Schema本身也是XML文档,DTD定义跟XML没有什么关系,Schema在理解和实际应用有很多的好处。

2、DTD文档的结构是“平铺型”的,如果定义复杂的XML文档,很难把握各元素之间的嵌套关系;Schema文档结构性强,各元素之间的嵌套关系非常直观。

3、DTD只能指定元素含有文本,不能定义元素文本的具体类型,如字符型、整型、日期型、自定义类型等。Schema在这方面比DTD强大。

4、Schema支持元素节点顺序的描述,DTD没有提供无序情况的描述,要定义无序必需穷举排列的所有情况。Schema可以利用xs:all来表示无序的情况。

5、对命名空间的支持。DTD无法利用XML的命名空间,Schema很好满足命名空间。并且,Schema还提供了include和import两种引用命名空间的方法。

5 参考文章

Schema和DTD的区别

以上是什麼是XML? xml的實例講解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
RSS文檔:Web聯合組織的基礎RSS文檔:Web聯合組織的基礎Apr 18, 2025 am 12:04 AM

RSS文檔是基於XML的結構化文件,用於發布和訂閱頻繁更新的內容。它的主要作用包括:1)自動化內容更新,2)內容聚合,3)提高瀏覽效率。通過RSSfeed,用戶可以訂閱並及時獲取來自不同來源的最新信息。

解碼RSS:內容提要的XML結構解碼RSS:內容提要的XML結構Apr 17, 2025 am 12:09 AM

RSS的XML結構包括:1.XML聲明和RSS版本,2.頻道(Channel),3.條目(Item)。這些部分構成了RSS文件的基礎,允許用戶通過解析XML數據來獲取和處理內容信息。

如何解析和利用基於XML的RSS提要如何解析和利用基於XML的RSS提要Apr 16, 2025 am 12:05 AM

RSSFEEDSUSEXMLTOSYNDICATECONTENT; PARSINGTHEMINVOLVESLOADINGINGINGINGINSSTRUCTURE,andExtractingData.ApplicationsIncludeBuildBuildingNewSagGregatorSaterNewSagGregatorSator andTrackingPodcastepodcastepisodes。

RSS文檔:他們如何提供您喜歡的內容RSS文檔:他們如何提供您喜歡的內容Apr 15, 2025 am 12:01 AM

RSS文檔的工作原理是通過XML文件發佈內容更新,用戶通過RSS閱讀器訂閱並接收通知。 1.內容髮布者創建並更新RSS文檔。 2.RSS閱讀器定期訪問並解析XML文件。 3.用戶瀏覽和閱讀更新內容。使用示例:訂閱TechCrunch的RSS源,只需複制鏈接到RSS閱讀器中即可。

用XML建造供稿:RSS的動手指南用XML建造供稿:RSS的動手指南Apr 14, 2025 am 12:17 AM

使用XML構建RSSfeed的步驟如下:1.創建根元素並設置版本;2.添加channel元素及其基本信息;3.添加條目(item)元素,包括標題、鏈接和描述;4.轉換XML結構為字符串並輸出。通過這些步驟,你可以從零開始創建一個有效的RSSfeed,並通過添加額外的元素如發布日期和作者信息來增強其功能。

創建RSS文檔:逐步教程創建RSS文檔:逐步教程Apr 13, 2025 am 12:10 AM

創建RSS文檔的步驟如下:1.使用XML格式編寫,根元素為,包含元素。 2.在內添加、、等元素描述頻道信息。 3.添加元素,每個代表一個內容條目,包含、、、等。 4.可選地添加和元素,豐富內容。 5.確保XML格式正確,使用在線工具驗證,優化性能並保持內容更新。

XML在RSS中的作用:聯合內容的基礎XML在RSS中的作用:聯合內容的基礎Apr 12, 2025 am 12:17 AM

XML在RSS中的核心作用是提供一種標準化和靈活的數據格式。 1.XML的結構和標記語言特性使其適合數據交換和存儲。 2.RSS利用XML創建標準化格式,方便內容共享。 3.XML在RSS中的應用包括定義feed內容的元素,如標題和發布日期。 4.優勢包括標準化和可擴展性,挑戰包括文件冗長和嚴格語法要求。 5.最佳實踐包括驗證XML有效性、保持簡潔、使用CDATA和定期更新。

從XML到可讀的內容:揭開RSS feed的神秘面紗從XML到可讀的內容:揭開RSS feed的神秘面紗Apr 11, 2025 am 12:03 AM

rssfeedsarexmldocuments usedforcontentAggregation and distribution.totransformthemintoreadableContent:1)parsethethexmlusinglibrarieslibrariesliblarieslikeparserinparserinpython.2)andledifferentifferentrssssssssssssssssssssssssssssssssssssssssssssssersions andpotentionparsingrorS.3)

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前By尊渡假赌尊渡假赌尊渡假赌
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器