XMLは10分ですぐに開始できます。Xiaobaiは必見です。

XML

このドキュメントはXML初心者向けのリファレンスに適しています。コンテンツは非常にシンプルで、すぐに開始できます

初心者に最適な他のブロガーの記事もご覧ください。

MySQLは知っておく必要があります、配信アドレス:MySQLの使用、この記事を読んで
くださいHTML&CSS初心者向け必見HTML&CSSは知って知っている必要があります

1. XMLの概要

XMLは拡張可能なマークアップ言語です

第二に、XMLの役割

  1. データの保存に使用され、これらのデータは自己記述的です
  2. プロジェクトまたはモジュールの構成ファイルとして使用できます
  3. ネットワーク伝送データのフォーマットとして使用できます(あまり使用されませんが、現在は主にJSON)

3、XMLの作成

  1. 最初にJAVAプロジェクトまたはMoudleを作成し、プロジェクトを右クリックして新しいディレクトリを作成します
  2. 新規フォルダを右クリック->ファイル
  3. ファイルにxxx.xmlという名前を付けます

4番目に、XMLの使用

  1. XMLファイルの注釈形式はHTMLと同じです。<!--注释内容-->
  2. 各xmlファイルの最初の行は次のようにする必要があります:<?xml version="1.0" encoding="UTF-8"?>
    注:
    ①<?xmlにスペースを含めることはできません。そうでない場合、エラーが報告されます
    ②バージョンはバージョン番号を表し
    ます③エンコーディングはXMLのファイルエンコーディングです
  3. XMLタグと属性の使用はHTMLと一貫しています
  4. XMLのテキストの大きな段落では、テキスト領域(CDATA領域)を使用できます。この領域のコンテンツは解析されず、プレーンテキストとしてのみ処理されます。
    構文:<![CDATA[输入的内容]]>

コード例:

<?xml version="1.0" encoding="utf-8" ?>
<books> <!--表示有多个book-->
    <book id="SN123"> <!--book标签描述一本书,id属性描述编号-->
        <!--以下标签描述图书的信息-->
        <name>时间简史</name>		
        <author>霍金</author>
        <price>23.6</price>
    </book>
    <book> <!--book标签用来描述另一本书-->
        <name>毛泽东语录</name>
        <author>毛泽东</author>
        <price>10.5</price>
    </book>
<![CDATA[<book>我不会被解析</book>]]>
</books>

5、DOM4J分析テクノロジー

  1. XMLファイルとHTMLファイルはどちらもDOMテクノロジーを使用して解析できます。DOMはXML文書をツリー構造として使用します。DOM4Jを使用する場合は、公式Webサイトからjarパッケージをダウンロードする必要があります
  2. DOM4Jプログラミングの使用
    (1)現在のMoudleの下に新しいlibsフォルダーを作成し、上記のjarパッケージをインポートし、[ライブラリとして追加]を右クリックします
    (2)解析する必要があるXMLファイルを作成します
<?xml version="1.0" encoding="UTF-8" ?>
<books>
    <book sn="SN123">
        <name>白马啸西风</name>
        <price>33.5</price>
        <author>金庸</author>
    </book>
    <book sn="SN456">
        <name>汇编语言</name>
        <price>25.9</price>
        <author>王爽</author>
    </book>
</books>

(3)XMLファイルに対応するBookクラスを作成する

public class Book {
    
    
    private String name;
    private String sn;
    private Double price;
    private String author;
    //无参、全参构造器
    public Book(String name, String sn, Double price, String author) {
    
    
        this.name = name;
        this.sn = sn;
        this.price = price;
        this.author = author;
    }
    public Book() {
    
    
    }
    //各属性的getter/setter方法
    public String getName() {
    
    
        return name;
    }
    public void setName(String name) {
    
    
        this.name = name;
    }
    public String getSn() {
    
    
        return sn;
    }
    public void setSn(String sn) {
    
    
        this.sn = sn;
    }
    public Double getPrice() {
    
    
        return price;
    }
    public void setPrice(Double price) {
    
    
        this.price = price;
    }
    public String getAuthor() {
    
    
        return author;
    }
    public void setAuthor(String author) {
    
    
        this.author = author;
    }
    //toString方法
    @Override
    public String toString() {
    
    
        return "Book{" +
                "name='" + name + '\'' +
                ", sn='" + sn + '\'' +
                ", price=" + price +
                ", author='" + author + '\'' +
                '}';
    }
}

(4)XMLファイル内のすべてのタグのコンテンツをトラバースする

public class Test {
    
    
    @org.junit.Test
    public void readXMl() throws DocumentException {
    
    
        //1.创建SAXReader对象通过read方法读取XML文件
        SAXReader saxReader = new SAXReader();
        Document document = saxReader.read("src/books.xml");
        //2.通过Document对象的getRootElement方法得到XML文件的根元素对象
        Element rootElement = document.getRootElement();
        //3.通过Element中的elements(标签名)或element(标签名)获取当前元素下
        //  的指定子元素集合(加s)或子元素(不加s)
        List<Element> books = rootElement.elements("book");
        //4.遍历每个book标签对象,获取到book对象内的每一个子元素
        for (Element book: books) {
    
    
            /***********************************************************/
            //获取到book下的name元素
            Element name = book.element("name");
            //Element的getText方法获取标签中的文本内容
            String nameText = name.getText();
            /***********************************************************/
            //获取到book下的sn属性,Element的attributeValue方法可以获取属性
            String snValue = book.attributeValue("sn");
            //获取到book下的price元素,elementText方法直接获取指定标签中的文本内容
            String priceText = book.elementText("price");
            //获取到book下的author元素的内容
            String authorText = book.elementText("author");
            //使用得到的标签内容创建Book对象,并输出
            System.out.println(new Book(nameText,snValue,
                    Double.parseDouble(priceText),authorText));
        }
    }
}

演算結果:
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/weixin_49343190/article/details/107729256