亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java的XML語法是什么及怎么使用

發布時間:2022-11-09 17:29:49 來源:億速云 閱讀:141 作者:iii 欄目:編程語言

這篇文章主要介紹“java的XML語法是什么及怎么使用”,在日常操作中,相信很多人在java的XML語法是什么及怎么使用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”java的XML語法是什么及怎么使用”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

1. XML的基本語法
  • 有且只有一個根元素

  • XML文檔聲明必須放在文檔的第一行

<?xml version="1.0" encoding="UTF-8"?>
  • 所有標簽必須成對出現——有開始標簽和結束標簽

  • XML標簽嚴格區分大小寫

  • XML必須正確嵌套

  • XML中的屬性必須加引號

  • XML中,一些特殊字符必須使用“實體”。

  • XML中可以使用注釋

<!-- 這就是注釋 -->
2. 可以使用瀏覽器來校驗語法

將XML文件拖入瀏覽器,或者用瀏覽器打開。

  • 有錯的顯示

  • java的XML語法是什么及怎么使用

  • 正確的顯示

  • java的XML語法是什么及怎么使用

3. XML元素

XML元素是開始標簽到結束標簽的部分。
一個元素可以包含:

  1. 其他元素

  2. 文本

  3. 屬性

  4. 以上的混合

4. XML的命名規則
  • 名稱可以包含字母,數字及其他字符。

  • 名稱不能以數字或者標點符號開始。

  • 名稱不能以字母xml開始。

  • 名稱不能包含空格。

5. Schema
  • DTD文檔類型定義
    用于驗證一個XML文檔是否有效。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE books [
        <!ELEMENT books (book*)>
        <!ELEMENT book (name,author,price)>
        <!ELEMENT name (#PCDATA)>
        <!ELEMENT author (#PCDATA)>
        <!ELEMENT price (#PCDATA)>
        <!ATTLIST book id CDATA #REQUIRED>
]>
<books>
    <book id="1001">
        <name>神雕俠侶</name>
        <author>金庸</author>
        <price>44.2</price>
    </book>
    <book id="1002">
        <name>倚天屠龍記</name>
        <author>金庸</author>
        <price>66.8</price>
    </book>
</books>
  • Schema
    是DTD的替代者,名叫XML Schema,用于描述XML文檔結構,比DTD強大。XML Schema支持數據類型。

Schema使用XML來驗證一個XML是否遵循XML語法
Schema可使用能處理XML文檔的工具處理
Schema大大擴充了數據類型,而且還可以自定義數據類型。
Schema支持元素的繼承
Schema支持屬性組

Schema的文檔結構

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    
</xs:schema>

所有的Schema文檔都使用schema作為其根元素。
http://www.w3.org/2001/XMLSchema 用于驗證當前Schema文檔的命名空間(用于驗證Schema本身)。xs是定義的前綴。

  • 如何使用Schema驗證XML文件的有效性

XML文件:books.xml

<?xml version="1.0" encoding="UTF-8"?>
<books xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:noNamespaceSchemaLocation="books.xsd">
    <book id="1001">
        <name>神雕俠侶</name>
        <author>金庸</author>
        <price>44.2</price>
    </book>
    <book id="1002">
        <name>倚天屠龍記</name>
        <author>金庸</author>
        <price>66.8</price>
    </book>
</books>

Schema文件:books.xsd

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="books">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="book" maxOccurs="unbounded">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="name" type="xs:string"></xs:element>
                            <xs:element name="author" type="xs:string"></xs:element>
                            <xs:element name="price" type="xs:double"></xs:element>
                        </xs:sequence>
                        <xs:attribute name="id" type="xs:positiveInteger" use="required"></xs:attribute>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

使用java根據schema來驗證xml的有效性:

package demo;

import org.xml.sax.SAXException;

import javax.xml.transform.Source;
import javax.xml.transform.stream.StreamSource;
import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;
import javax.xml.validation.Validator;
import java.io.File;
import java.io.IOException;

public class TestXML {
    public static void main(String[] args) throws SAXException {
        SchemaFactory sch=SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
        File schemaFile=new File("src/demo/books.xsd");
        Schema schema=sch.newSchema(schemaFile);
        Validator validator=schema.newValidator();
        Source source=new StreamSource("src/demo/books.xml");
        try {
            validator.validate(source);
            System.out.println("檢查成功");
        } catch (IOException e) {
            e.printStackTrace();
            System.out.println("驗證失敗");
        }
    }
}

驗證失敗將拋出異常。

6. XPATH
  • 軟件包

dom4j-1.6.1.jar
jaxen-1.1-beta-6.jar
  • 使用案例

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
import java.util.List;

public class Test01 {
    public static void main(String[] args) throws DocumentException {
        SAXReader reader = new SAXReader();
        Document doc = reader.read("src/xpath/demo/books.xml");
        //取單個節點
        Node node = doc.selectSingleNode("//author");
        System.out.println("節點的名稱:" + node.getName() + "\t" + node.getText());
        System.out.println("=========================");
        //取所有滿足要求的節點
        List<Node> list = doc.selectNodes("//author");
        for (Node n : list) {
            System.out.println("節點的名稱:" + n.getName() + "\t" + n.getText());
        }
        System.out.println("=========================");
        //選取屬性
        List<Attribute> attrs = doc.selectNodes("//book/@id");
        for (Attribute attr : attrs) {
            System.out.println("屬性的名稱:" + attr.getName() + "\t" + attr.getText());
        }
    }
}

到此,關于“java的XML語法是什么及怎么使用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

石景山区| 邵阳市| 黑水县| 沈丘县| 泰安市| 桃江县| 烟台市| 卢湾区| 昌平区| 会宁县| 兴城市| 道孚县| 枝江市| 彰化县| 定远县| 深泽县| 确山县| 斗六市| 阿荣旗| 孝昌县| 九龙坡区| 榆林市| 张北县| 蕲春县| 屏山县| 嘉峪关市| 静安区| 临邑县| 五大连池市| 天长市| 临西县| 赫章县| 乐山市| 如东县| 定州市| 武隆县| 彭泽县| 华亭县| 兴宁市| 孝昌县| 游戏|