1.其實就是裏面的標籤, <> 括起來的都叫元素 。 成對出現。 以下:html
<stu> </stu>
<stu> <name>張三</name> <age/> </stu>
6.XML 命名規則(必須)web
<stus> <stu id="10086"> <name>張三</name> <age>18</age> </stu> <stu id="10087"> <name>李四</name> <age>28</age> </stu> </stus>
若是某段字符串裏面有過多的字符, 而且裏面包含了相似標籤或者關鍵字的這種文字,不想讓xml的解析器去解析。 那麼可使用CDATA來!包裝。 不過這個CDATA 通常比較少看到。 一般在服務器給客戶端返回數據的時候。apache
<des><![CDATA[<a href="http://www.baidu.com">我愛編程</a>]]></des>
有不少種,可是經常使用的有兩種。編程
element.element("stu") : 返回該元素下的第一個stu元素 element.elements(); 返回該元素下的全部子元素。
try{ // 1.建立sax讀取對象 SAXReader reader = new SAXReader(); // jdbc -- classloader // 2.指定解析的xml源 Document document = reader.read(new File("src/xml/stus.xml")); // 3.獲得元素、 // 獲得根元素 Element rootElement = document.getRootElement(); // 獲取根元素下面的子元素 age // rootElement.element("age") // System.out.println(rootElement.element("stu").element("age").getText()); // 獲取根元素下面的全部子元素 。 stu元素 List<Element> elements = rootElement.elements(); // 遍歷全部的stu元素 for( Element element:elements) { // 獲取stu元素下面的name元素 String name = element.element("name").getText(); String age = element.element("age").getText(); String address = element.element("address").getText(); System.out.println("name=" + name + "==age+" + age + "==address=" + address); } }catch(Exception e) { e.printStackTrace(); }
SaxReader 建立好對象 。
Document
Element
1.看文檔
2.記住關鍵字 。
3.有對象先點一下。
4.看一下方法的返回值。
5.根據平時的積累。 getXXX setXXX瀏覽器
//要想使用Xpath, 還得添加支持的jar 獲取的是第一個 只返回一個。 Element nameElement = (Element) rootElement.selectSingleNode("//name"); System.out.println(nameElement.getText()); System.out.println("----------------"); //獲取文檔裏面的全部name元素 List<Element> list = rootElement.selectNodes("//name"); for (Element element : list) { System.out.println(element.getText()); }
以下的文檔, 屬性的ID值是同樣的。 這在生活中是不可能出現的。 而且第二個學生的姓名有好幾個。 通常也不多。那麼怎麼規定ID的值惟一, 或者是元素只能出現一次,不能出現屢次? 甚至是規定裏面只能出現具體的元素名字。tomcat
<stus> <stu id="10086"> <name>張三</name> <age>18</age> <address>深圳</address> </stu> <stu id="10086"> <name>李四</name> <name>李五</name> <name>李六</name> <age>28</age> <address>北京</address> </stu> </stus>
<!-- xml文檔裏面直接嵌入DTD的約束法則 --> <!DOCTYPE stus [ <!ELEMENT stus (stu)> <!ELEMENT stu (name,age)> <!ELEMENT name (#PCDATA)> <!ELEMENT age (#PCDATA)> ]> <stus> <stu> <name>張三</name> <age>18</age> </stu> </stus> <!ELEMENT stus (stu)> : stus 下面有一個元素 stu , 可是隻有一個 <!ELEMENT stu (name , age)> stu下面有兩個元素 name ,age 順序必須name-age <!ELEMENT name (#PCDATA)> <!ELEMENT age (#PCDATA)> <!ATTLIST stu id CDATA #IMPLIED> stu有一個屬性 文本類型, 該屬性無關緊要 元素的個數: + 一個或多個 * 零個或多個 ? 零個或一個 屬性的類型定義 CDATA :屬性是普通文字 ID :屬性的值必須惟一 <!ELEMENT stu (name , age)> 按照順序來 <!ELEMENT stu (name | age)> 兩個中只能包含一個子元素
其實就是一個xml , 使用xml的語法規則, xml解析器解析起來比較方便 , 是爲了替代DTD 。 可是Schema 約束文本內容比DTD的內容還要多。 因此目前也沒有真正意義上的替代DTD 約束文檔: <!-- xmlns : xml namespace : 名稱空間 / 命名空間 targetNamespace : 目標名稱空間 。 下面定義的那些元素都與這個名稱空間綁定上。 elementFormDefault : 元素的格式化狀況。 --> <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.itheima.com/teacher" elementFormDefault="qualified"> <element name="teachers"> <complexType> <sequence maxOccurs="unbounded"> <!-- 這是一個複雜元素 --> <element name="teacher"> <complexType> <sequence> <!-- 如下兩個是簡單元素 --> <element name="name" type="string"></element> <element name="age" type="int"></element> </sequence> </complexType> </element> </sequence> </complexType> </element> </schema> 實例文檔: <?xml version="1.0" encoding="UTF-8"?> <!-- xmlns:xsi : 這裏必須是這樣的寫法,也就是這個值已經固定了。 xmlns : 這裏是名稱空間,也固定了,寫的是schema裏面的頂部目標名稱空間 xsi:schemaLocation : 有兩段: 前半段是名稱空間,也是目標空間的值 , 後面是約束文檔的路徑。 --> <teachers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.itheima.com/teacher" xsi:schemaLocation="http://www.itheima.com/teacher teacher.xsd" > <teacher> <name>zhangsan</name> <age>19</age> </teacher> <teacher> <name>lisi</name> <age>29</age> </teacher> <teacher> <name>lisi</name> <age>29</age> </teacher> </teachers>
一個xml若是想指定它的約束規則, 假設使用的是DTD ,那麼這個xml只能指定一個DTD , 不能指定多個DTD 。 可是若是一個xml的約束是定義在schema裏面,而且是多個schema,那麼是能夠的。簡單的說: 一個xml 能夠引用多個schema約束。 可是隻能引用一個DTD約束。服務器
名稱空間的做用就是在 寫元素的時候,能夠指定該元素使用的是哪一套約束規則。 默認狀況下 ,若是隻有一套規則,那麼均可以這麼寫微信
<name>張三</name> <aa:name></aa:name> <bb:name></bb:name>
網頁遊戲網絡
啓動以後,若是可以正常看到黑窗口,代表已經成功安裝。 爲了確保萬無一失, 最好在瀏覽器的地址欄上輸入 : http://localhost:8080 , 若是有看到內容 就代表成功了。架構
http://localhost:8080/stu.xml * 在webaps下面新建一個文件夾xml , 而後拷貝文件放置到這個文件夾中 http://localhost:8080/xml/stu.xml http://localhost:8080 : 其實對應的是到webapps/root http://localhost:8080/xml/ : 對應是 webapps/xml 使用IP地址訪問: http://192.168.37.48:8080/xml/stu.xml
使用localhost:8080 打開tomcat首頁, 在左側找到tomcat的文檔入口, 點擊進去後, 在左側接着找到 Context入口,點擊進入。
http://localhost:8080/docs/config/context.html
2.在這個文件裏面寫入如下內容
<?xml version='1.0' encoding='utf-8'?>
<Context docBase="D:\xml02"></Context>
xml
tomcat