XML與web開發-01- 在頁面顯示和 XML DOM 解析
前言: 關於 xml 特點和基礎知識,可以菜鳥教程進行學習:http://www.runoob.com/xml/xml-tutorial.html
本系列筆記,主要介紹 xml 在 web 開發時需要了解的知識
XML 在頁面顯示資料
XML 指可擴充套件標記語言(eXtensible Markup Language)。
XML 被設計用來傳輸和儲存資料。
一、怎麼在頁面上只顯示資料?
大家在網頁上可能都見過這樣的 xml 檔案:
這是沒有任何樣式的 xml,開啟 tomcat 什麼的伺服器,在網頁上瀏覽 xml 檔案的樣式,它的原始碼是:
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <addresslist> <linkman> <name>肖朋偉</name> <id>2236</id> <company>null</company> <email>[email protected]</email> <tel>66666</tel> </linkman> </addresslist>
怎樣在頁面上只顯示文字,並加上特定的樣式呢?那就要用到 css 了
(1)先自己寫一個 css 樣式:
name{
display: block;
color: brown;
font-size: 20pt;
font-weight: bold;
}
id, company, email, tel, site{
display: block;
color: black;
font-size: 14pt;
font-weight: normal;
}
(2)在 xml 檔案中引入這個 css 檔案:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- 加上樣式,注意路徑 -->
<?xml-stylesheet type="text/css" href="../css/first.css" ?>
<addresslist>
<linkman>
<name>肖朋偉</name>
<id>2236</id>
<company>null</company>
<email> [email protected]</email>
<tel>66666</tel>
</linkman>
</addresslist>
(3)就會這樣顯示了:
(4)然後,xml 也可以像 html 標籤那樣,加屬性,例如:
<tel id = "userTel">66666</tel>
XML與web開發-01- xml 解析
在 xml 檔案中更多的的用來描述資訊的內容,
所以在得到一個 XML 文件後,應該利用程式按照其中元素的定義名稱取出對應內容,
這樣的操作就稱為 xml 解析。
W3C 定義了 SAX 和 DOM 兩種解析方式
XML - DOM 解析操作
在應用程式中,基於 DOM 的 XML 分析器將一個 XML 文件轉換成一個物件模型的集合,通常稱為 DOM 樹
應用程式正是通過對這個物件模型的操作,來實現對 XML 文件資料的操作。
準備一個 xml 檔案(路徑是 D:\xml\first.xml,下面要用目錄,注意):
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<addresslist>
<linkman>
<name>肖朋偉</name>
<id>2236</id>
<company>null</company>
<email>[email protected]</email>
<tel>66666</tel>
</linkman>
</addresslist>
java 解析檔案:
【注意】:
1.目錄,我是新建一個包 xml ,再新建一個 dom.java
2.注意解析的 xml 路徑,要根據自己的路徑設定
3.如果自己寫程式碼,注意一下導包,Document,是 org.w3c.dom.Document
// 目錄,我是新建一個包 xml ,再新建一個 dom.java
package xml;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
//注意 Document,是 org.w3c.dom.Document
//預設導包會是 javax 那個,注意一下
import org.w3c.dom.Document;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import java.io.File;
import java.io.IOException;
public class dom {
public static void main(String[] args){
//(1)建立 DocumentBuilderFactory,用來得到 DocumentBuilder
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
//(2)通過 DocumentBuilderFactory,來得到 DocumentBuilder
DocumentBuilder builder = null;
try{
builder = factory.newDocumentBuilder();
}catch (ParserConfigurationException e){
e.printStackTrace();
}
//(3)定義
Document doc = null;
try {
//讀取指定路徑的 xml 檔案,要先有一個這樣的檔案
doc = builder.parse("D://xml/" + File.separator + "first.xml");
} catch (SAXException e){
e.printStackTrace();
} catch (IOException e){
e.printStackTrace();
}
//(4)查詢 name 的節點
NodeList nl = doc.getElementsByTagName("name");
//(5)輸出 NodeList 中第一個子節點中文字節點的內容
System.out.println("姓名:" + nl.item(0).getFirstChild().getNodeValue());
}
}
執行就會在控制檯列印: