學習xml的簡明教程
1、前言
本貼絕大部分資源均轉自www.xml.org.cn
聲明先,免得有人說偶盜鏈 SHOW TIME
2、黃金裝備
XML Explorer簡體中文正式版(免費)XML.ORG.CN下載
(推薦這個,簡單易用,比冰火雙劍還要牛X)
介紹
XML Explorer是一個XML和schema編輯器。它簡單易用,可以展現多個窗口。可從樹狀圖、列表、表格、
文字模式和跳出式編輯區等方式操作任何XML資料。
* 它的copy and paste功能可以讓使用者複製任何XML 文字到系統剪貼簿上,然後貼到任何XML Explorer窗口。
* 它支持雙向xpath,所以只要點任何XML節點或屬性,一個標準的Xpath就出來了。
* 它兩欄的文字展現方式方便比較和編輯。
* 它的schema完全支持樹狀圖、列表、集合觀看模式、文字模式。
* 有了它,你還能輕易把微軟Excel、Access和任何ODBC資料轉成XML格式。
* 新版本在表格模式包含了XML資料分析功能。
Special Thanks: 感謝David Ren(mergesoft.com)免費爲本站提供正式版本和註冊碼。
注意:該版本和註冊碼只限於在中國大陸地區使用。
註冊碼:1096DFDE-1962-43A0-0000-005DXBDIPKSD
英文版:http://download.xml.org.cn/XMLExplorer.msi
中文版:http://download.xml.org.cn/XMLExplorerCN.msi
中文版補丁:http://download.xml.org.cn/xmlexplorer268cn.rar
其他工具下載:
http://bbs.xml.org.cn/dispbbs.asp?boardID=35&ID=6191
其他資源下載:
http://bbs.xml.org.cn/resource.asp
一下將採用作者“小鞋子”的入門教程,某些部分略有修改
3、定義標記
<?xml version="1.0"?>
<book>
<title>XML</title>
<author>lisongtao</author>
</book>
如果文檔中包含中文,就要加入編碼
<?xml version="1.0" encoding="GB2312"?>
關於編碼,參見“無廢話XML”的相關魔鬼教程。。。
4、使用CSS樣式
<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="1.css"?>
<lisongtao>
Hello the world!
</lisongtao>
---------------------------------------------
1.CSS
----------------------------------------
lisongtao {display: block; font-size: 48pt; font-weight: bold;}
5、用XSL定義
什麼叫“XSL”,你可以暫且看作一個類似CSS,但比CSS更強的東西。XML語法參見其它教程,不廢話這裏。
1.XML
--------------------------------------------
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="2.xsl"?>
<lisongtao>
Hello the world!
</lisongtao>
---------------------------------------------
2.xsl
----------------------------------------
<?xml version="1.0" encoding="gb2312"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<html>
<head>
<title>hello the world</title>
</head>
<body bgcolor="#CCCCFF">
<h1 align="center"><xsl:value-of select="lisongtao"/></h1>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
6、註釋
沒什麼好多講的,和JS一樣
<?xml version="1.0" encoding="gb2312"?>
<!--
這是一些有關書的信息
-->
<books>
<book>
<name>xml應用</name>
<author>list1</author>
<price>55.00</price>
</book>
</books>
7、節點的屬性
<?xml version="1.0"?>
<books title="list">
<book>
<name>xml and asp</name>
<price>45.00</price>
<publisher>tsinghua </publisher>
</book>
</books>
8、特殊標記
XML中,< > " ' &特殊標記時,應當用< > "l ' &表示
<?xml version="1.0"?>
<books height="6'5'">
<book width="6"5"">
<name>list &lisongtao</name>
<author>lisongtao < [email protected]></author>
</book>
</books>
9、中文標記
汗。。。。又一個XLTXLM性的自戀狂。。
雖然XML支持中文標籤,但不建議使用。
<?xml version="1.0" encoding="gb2312"?>
<好人 >
<name>小鞋子</name>
</好人>
10、DTD數據格式
你可以暫且把DTD看作一種規則,它保證xml按照這些規則來定義數據格式。
1.DTD
=====================
<?xml version="1.0"?>
<!ELEMENT book (price,name)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT price (#PCDATA)>
查資料:如果同一節點含有多個字節點,應該如何定義了?
=====================
DTD.XML
==================
<?xml version="1.0"?>
<!DOCTYPE book SYSTEM "1.dtd">
<book>
<name>lisongtao</name>
<price>11.2</price>
</book>
11、DTD直接寫在XML裏面
<?xml version="1.0"?>
<!DOCTYPE book [
<!ELEMENT book (price,name)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT price (#PCDATA)>
]>
<book>
<price>11.2</price>
<name>lisongtao</name>
</book>
12、節點的多屬性
<?xml version="1.0" encoding="gb2312"?>
<books>
<book name=" xml應用" author="list1" price="55.00">
</book>
</books>
13、結束標記另一種方法
不推薦。。。
<?xml version="1.0" encoding="gb2312"?>
<books>
<book name=" xml應用" author="list1" price="55.00"[color]/[/color]>
</books>
14、直接顯示包含特殊字符
前面我們看到了,< > " ' &等特殊字符須手動修改後才能顯示,如果大量了?。。。就用CDATA
<?xml version="1.0" encoding="gb2312"?>
<books>
<![CDATA[
<book>
<name>xml應用</name>
<author>list1</author>
<price>55.00</price>
</book>
]]>
<book>
<name>xml應用</name>
<author>list1</author>
<price>55.00</price>
</book>
</books>
15、小結,一個完整的XML
<?xml version="1.0" encoding="gb2312"?>
<!--這是一個學生選課系統的所有數據-->
<choose_system>
<students>
<student id="984610" lesson_id="11">
<name>咚咚</name>
<age>25</age>
<sex>男</sex>
<department>自動化</department>
</student>
<student id="984611" lesson_id="12">
<name>礦哥</name>
<age>26</age>
<sex>男</sex>
<department>自動化</department>
</student>
<student id="984612" lesson_id="11">
<name>歡迎新村民</name>
<age>23</age>
<sex>男</sex>
<department>自動化</department>
</student>
<student id="984613" lesson_id="12">
<name>張明</name>
<age>25</age>
<sex>男</sex>
<department>自動化</department>
</student>
</students>
<lessons>
<lesson id="11">
<name>控制原理</name>
<num>12</num>
<les_start>99.2</les_start>
<les_end>99.7</les_end>
<end_method>考試</end_method>
</lesson>
<lesson id="12">
<name>網絡原理</name>
<num>11</num>
<les_start>99.3</les_start>
<les_end>99.6</les_end>
<end_method>通過</end_method>
</lesson>
</lessons>
<teachers>
<teacher id="1122" lesson_id="11">
<name>開心啊</name>
<age>33</age>
<tea_age>3</tea_age>
<rank>教授</rank>
<publish>控制原理</publish>
<sex>男</sex>
</teacher>
<teacher id="1123" lesson_id="12">
<name>還是開心啊</name>
<age>40</age>
<tea_age>7</tea_age>
<rank>副教授</rank>
<publish>網絡原理</publish>
<sex>男</sex>
</teacher>
</teachers>
</choose_system>
代碼:
--------------------------------------------------------------------------------
16、CSS樣式定義節點
<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="1.css"?>
<books>
<book>
<author>lisongtao</author>
<name>the application of ASP</name>
</book>
</books>
---------------------------------------------------------
1.css
-----------------------------------------------------------
books
{
display:block;
}
book
{
display:block;
background-color:#aabbcc
}
---------------------------------------------
心得:以上的定義方法和重定義HTML的標籤樣式一樣,如對CSS不熟者,推薦用DW生成後再對應一下效果.很易就可以學會的.
17、樣式類定義XML
<?xml version="1.0" standalone="yes"?>
<?xml-stylesheet type="text/css" href="3.css"?>
<list class="listclass">
<sublist class="listsmall">lisongtao</sublist>
<sublist>zhongguo</sublist>
</list>
----------------------------------------------------------
3.css
.listclass {color: red; font-size:26pt}
.listsmall {color:blue; font-size:15pt}
18、類的ID定義XML
<?xml version="1.0" standalone="yes"?>
<?xml-stylesheet type="text/css" href="ID.css"?>
<school>
<class id="list">lisongtao</class>
<monitor id="list1">lisongtao</monitor>
</school>
---------------------------------
ID.CSS
--------------------------------------------------
#list {font-size:28pt; color:red; display: block}
#list1 {font-size:14pt; color:blue display: block }
19、XML中直接使用CSS
<?xml version="1.0" standalone="yes"?>
<?xml-stylesheet type="text/css" href="sevil.txt"?>
<!--這句一定要有,而SEVIL.TXT可以換別的名字,不過中文好像這裏不行.-->
<FOO STYLE="font-weight: bold;color:red">
Hello XML!
</FOO>
20、在一個樣式表中合併引用另一個樣式表的方法
@import url("sevil.css");
21、用CSS定製個節點的塊狀顯示
XML.XML
--------------------------------------------------------------------------------
<?xml version="1.0" encoding="gb2312"?>
<?xml-stylesheet type="text/css" href="CSS.css"?>
<books xmlns:HTML="http://www.w3.org/Profiles/XHTML-transitional">
<HTML:style>
books
{
display:block;
width:30em;
}
</HTML:style>
<book>
<author>list </author>
<name> ASP及其應用</name>
<publisher>Tsinghua University</publisher>
<price>12.30</price>
</book>
<book>
<author>James </author>
<name> XML及其應用</name>
<publisher>Tsinghua University</publisher>
<price>15.30</price>
</book>
<book>
<author>John </author>
<name> CSS及其應用</name>
<publisher>Peiking University</publisher>
<price>16.30</price>
</book>
</books>
---------------------------------------------------------------
CSS.CSS
---------------------------------------------------------------
book
{
display:block;
background-color:#AABBCC;
padding:1.2em;
margin-bottom:1em;
}
author
{
display:block;
font-size:16pt;
color:red;
}
22、在同一個XML文件內引用多個CSS樣式表的方法
<?xml version="1.0" standalone="yes"?>
<?xml-stylesheet type="text/css" href="1.css"?>
<?xml-stylesheet type="text/css" href="2.css"?>
23、在XML中使用HTML標記的方法,例插入圖片
<?xml version="1.0" encoding="gb2312"?>
<?xml-stylesheet type="text/css"?>
<books xmlns:HTML="http://www.w3.org/Profiles/XHTML-transitional">
<book>
<author>list </author>
<name> ASP及其應用</name>
<publisher>Tsinghua University</publisher>
<price>12.30</price>
<HTML:img src="suzh1.jpg" />
</book>
</books>
24、在XML中使用HTML標記的方法(2),使用超連接
<?xml version="1.0" encoding="gb2312"?>
<?xml-stylesheet type="text/css"?>
<books xmlns:HTML="http://www.w3.org/Profiles/XHTML-transitional">
<book>
<author>list </author>
<name> ASP及其應用</name>
<publisher>Tsinghua University</publisher>
<price>12.30</price>
[colorred]<from><HTML:a href="http://www.263.net">263中國在線</HTML:a></from>[/color]
</book>
</books>
25、在XML中使用HTML標記(3),使用<BR><p>等標記
<?xml version="1.0" encoding="gb2312"?>
<?xml-stylesheet type="text/css"?>
<books xmlns:HTML="http://www.w3.org/Profiles/XHTML-transitional">
<book>
<HTML:P>
<author>list </author>
</HTML:P>
<name> ASP及其應用</name>
<publisher>Tsinghua University</publisher>
<HTML:br/>
<price>12.30</price>
</book>
</books>
26、在XML中使用HTML標記的方法(4),使用表格標籤
<?xml version="1.0" encoding="gb2312"?>
<?xml-stylesheet type="text/css"?>
<books xmlns:HTML="http://www.w3.org/Profiles/XHTML-transitional">
<book>
<HTML:TABLE border="1.0" align="center">
<HTML:TR>
<HTML:TD>LIST</HTML:TD>
<HTML:TD>ASP PROGRAMING</HTML:TD>
<HTML:TD>TSINGHUA UNIVERSITY</HTML:TD>
</HTML:TR>
</HTML:TABLE>
</book>
</books>
27、在XML中使用HTML標記的方法(5),使用表單
汗。。。。這樣子就沒意思了,僅供參考
<?xml version="1.0" encoding="gb2312"?>
<?xml-stylesheet type="text/css"?>
<books xmlns:HTML="http://www.w3.org/Profiles/XHTML-transitional">
<book>
<HTML:TABLE border="0" align="center">
<HTML:TR>
<HTML:TD>NAME</HTML:TD>
<HTML:TD><HTML:INPUT TYPE="TEXT"/></HTML:TD>
</HTML:TR>
<HTML:TR>
<HTML:TD>NAME</HTML:TD>
<HTML:TD><HTML:INPUT TYPE="TEXT"/></HTML:TD>
</HTML:TR>
<HTML:TR>
<HTML:TD>NAME</HTML:TD>
<HTML:TD><HTML:INPUT TYPE="TEXT"/></HTML:TD>
</HTML:TR>
</HTML:TABLE>
<HTML:CENTER>
<HTML:INPUT TYPE="SUBMIT"/><HTML:INPUT TYPE="RESET"/>
</HTML:CENTER>
</book>
</books>
28、在XML中使用HTML標記的方法(6),使用JS腳本
<?xml version="1.0" encoding="gb2312"?>
<?xml-stylesheet type="text/css"?>
<books xmlns:HTML="http://www.w3.org/Profiles/XHTML-transitional">
<HTML:SCRIPT language="javascript">
var fRunning = 0
function startTrans()
{
if (fRunning == 0)
{
fRunning = 1
SampleID.filters.revealTrans.Apply();
SampleID.src = "suzh1.jpg";
SampleID.filters.revealTrans.Play()
}
else
{
fRunning = 0
SampleID.filters.revealTrans.Apply();
SampleID.src = "suzh2.jpg";
SampleID.filters.revealTrans.Play()
}
}
</HTML:SCRIPT>
<HTML:IMG id="SampleID" src="suzh2.jpg" width="200" height="200" style="filter:revealTrans(duration=3)" οnclick="startTrans()" />
<HTML:BR />
Click image for Transition Filter: Blend
</books>
29、總結CSS/HTML:
其實在XML裏面調用CSS來顯示統一的樣式很簡單,主要通過一個
<?xml-stylesheet type="text/css" href="1.css"?>
這樣的方法來聯繫起來.最好能先學學CSS的語法這樣對大家很有好處.如果不太會的話,也可以用DW來自動生成CSS樣式表後再聯起來.呵.
致於調用HTML標記可以用<HTML:標記>這樣的方法來實現.但一定要注意記他合乎XML的規則就行了.
30、通過XSL顯示XML
XML.XML
----------------------------------------------------------
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="1.xsl"?>
<!--連接XSL的方法,是不是和連接CSS很像啊??呵.-->
<persons>
<person>
<name> lisongtaow </name>
<age>25</age>
<tel>66666666</tel>
</person>
<person>
<name> lisongtao1</name>
<age>26</age>
<tel>66666667</tel>
</person>
<person>
<name>lisongtao3</name>
<age>28</age>
<tel>66666669</tel>
</person>
</persons>
-----------------------------------------------------------------------
1.xsl
----------------------------------------------------------------------
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<html>
<body>
<center>
<h2>the notepad</h2>
<table border="1">
<tr>
<td>name</td>
<td>age</td>
<td>tel</td>
</tr>
<xsl:for-each select="persons/person">
<tr>
<td><xsl:value-of select="name"/></td>
<td><xsl:value-of select="age"/></td>
<td><xsl:value-of select="tel"/></td>
</tr>
</xsl:for-each>
<!--循環輸出語塊,其中"persons/person"代表着路徑-->
</table>
</center>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
31、XSL小結
做完這個例子先總結一下:
在XSL的定義方法其實是一個HTML的全顯示格式.我們可以用DW直觀的編輯好.再加入代碼.
這裏XSL我們可以理解成爲一個模板.
其主要的定義方法有一個規則:
以後我們再寫XSL時就可以把這東東COPY出來了.不用老是對着書打.呵...
(用XML編輯器更快。。。^_^)
--------------------------------------------------------------
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
</xsl:template>
</xsl:stylesheet>
-----------------------------------------------------------
32、輸出某節點下的所有內容..
上一例子我們成功地用XSL輸出了XML裏面數據.
如果我們只要輸出某相同節點其下的內容.我們可以這樣做.
=======================
1.xml
要求:輸出XSL的"persons/person/tel/hometel"下面的所有內容.這裏"person"可以是多層
--------------------------------------------------------
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="2.xsl"?>
<persons>
<person>
<name>lisongtao</name>
<age>25</age>
<tel><hometel>
<tel>64456787</tel>
<childhometel>64456785</childhometel>
</hometel>
<offtel>44442222</offtel>
<worktel>3333333</worktel>
</tel>
</person>
<person>
<name>liwei</name>
<age>25</age>
<tel><hometel>
<tel>66545434</tel>
<childhometel>65433333</childhometel>
</hometel>
<offtel>64442222</offtel>
<worktel>6333333</worktel>
</tel>
</person>
<person>
<name>zhangxue</name>
<age>25</age>
<tel><hometel>
<tel>84343434</tel>
<childhometel>8333333</childhometel>
</hometel>
<offtel>84442222</offtel>
<worktel>8333333</worktel>
</tel>
</person>
<person>
<name>wure</name>
<age>26</age>
<tel>66666667</tel>
</person>
</persons>
================================
2.xsl
-----------------------------------------------------------
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<html>
<body>
<center>
<h2>the notepad</h2>
<table border="1">
<tr>
<td>name</td>
</tr>
<xsl:for-each select="persons/person/tel/hometel/*">
<tr>
<td><xsl:value-of select="."/></td>
</tr>
</xsl:for-each>
<!--注意FOR-EACH的SELECT路徑.然後用value-OF輸出全部所要求的節點內容-->
</table>
</center>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
33、用XSL讓XML文件使用到節點屬性的搜索功能
xml.xml
---------------------------------------------------------------------------------------
<?xml version="1.0" encoding="gb2312"?>
<?xml-stylesheet type="text/xsl" href="xsl.xsl"?>
<students>
<student id="98789">
<name>廖西</name>
<sex>女</sex>
<birthday type="陽曆">1987.2</birthday>
<phone>1303456787</phone>
<skill>唱歌</skill>
<dd>asdf
<ee>asdf</ee></dd>
<list>asdf</list>
</student>
<student id="98788">
<name>小記</name>
<sex>女</sex>
<birthday>1975.6</birthday>
<phone>13901145678</phone>
<skill>爬山</skill>
</student>
<student id="98785">
<name>江南</name>
<sex>女</sex>
<birthday>1978.8</birthday>
<phone>64576786</phone>
<skill>網絡</skill>
</student>
<student>
<name>小紅</name>
<sex>男</sex>
<birthday>1976.2</birthday>
<phone>62775466</phone>
<skill>網絡</skill>
<skill>書法</skill>
</student>
</students>
--------------------------------------------------------------------
xsl.xsl
---------------------------------------------------------------
<?xml version="1.0" encoding="gb2312"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<center> <h1>學號是"98789"的學生的生日是:<xsl:value-of select="/students/student[@id='98789']/birthday"/>
</h1></center>
</xsl:template>
</xsl:stylesheet>
34、資源及相關
以上教程均轉自www.xml.org.cn,版權作者小鞋子所有,特此聲明。
XML 資源:
1。W3C 的網站
http://www.w3.org/XML/
2。XML.com
http://www.xml.com
3。xml zone
http://www.xml-zone.com
4。XML.org
http://www.xml.org
5。XML Cover Pages
http://xml.coverpages.org
6。OASIS
http://www.oasis-open.org
7。XMLINFO.com
http://www.xmlinfo.com
8。STARTKABEL
http://xml.startkabel.nl
9。XMLAdvantage
http://www.xmladvantage.com
10。Chinese XML Now!
http://www.ascc.net/xml/
11。simonstl.com
http://www.simonstl.com
12。XML ARENA
http://www.xmlarena.com
13。XML 資源目錄
http://www.xmldir.com/
14。XML Tree
http://www.xmltree.com
XML 教程:
1。XML FAQ
http://www.ucc.ie/xml/
2。無廢話 XML -- 網上最好的 XML 入門教程
http://2tigers.net/xml_book/wfhxml_gb.zip
http://www.xml.org.cn:8188/docs/download/wfhxml_gb.zip
http://www.helpwork.net/downdata/bo...k/wfhxml_gb.zip
3。XML Bible
http://www.ibiblio.org/xml/books/bible/
http://www.mmg.vmei.acad.bg/xml/
《XML Bible》的中譯本爲中國水利水電出版社的《XML實用大全》一書,XML 中國論壇已將此書做成了電子版共享,
請看這裏:
http://www.xml.net.cn/ASPs/book_catalog.asp?bookid=02
在此向 XML 中國論壇所做出的努力表示由衷的感謝!
4。IBM 站點上的 XML 教程 (需註冊)
http://www.ibm.com/developerworks/xml/
http://www.ibm.com/developerworks/e...ecourse-bytitle
http://www.ibm.com/developerworks/webservices/
http://www-900.ibm.com/developerWorks/xml/
(IBM 的 DeveloperWorks 中文版上的 XML 專欄,強烈推薦!)
5。W3Schools.com
http://www.w3schools.com
6。zvon.org
http://www.zvon.org
7。xmlpitstop.com
http://www.xmlpitstop.com
8。Cafe con Leche XML News and Resources
http://www.ibiblio.org/xml/
9。一個免費 XML 教程的列表
http://www.intelinfo.com/newly_rese...aining/XML.html
比較好的 XML 編輯器:
1。XML Spy
http://www.xmlspy.com
2。EditML Pro
http://www.editml.com
3。PSGML for Emacs
http://sourceforge.net/projects/psgml/
與 XML 技術有關的軟件項目:
1。支持 XML 的瀏覽器 -- Mozilla
http://www.mozilla.org/newlayout/xml/
2。Apache 基金會的 XML 項目
http://xml.apache.org
3。Apache 基金會的 Jakarta 項目
http://jakarta.apache.org
4。可用的 XML 軟件列表
http://www.xmlsoftware.com
5。可用的 XML 軟件列表
http://www.oasis-open.org/cover/publicSW.html#xmlTools
6。XML hack
http://xmlhack.com
7。Sun 站點上的 XML 軟件
http://www.sun.com/xml/
http://www.sun.com/software/xml/
http://www.sun.com/xml/developers/
http://java.sun.com/xml/
8。IBM 站點上的 XML 軟件
http://www.ibm.com/developerworks/xml/
9。Oracle 站點上的 XML 軟件
http://technet.oracle.com/tech/xml/
10。XSLT.com
http://www.xslt.com
11。SOAP & WebServices
http://www.soap-wrc.com
http://www.soapware.org
12。XML-RPC
http://www.xmlrpc.com
13。WDDX
http://www.openwddx.org
14。Komodo
http://aspn.activestate.com/ASPN/Downloads/Komodo/More
15。XML with Java
http://developerlife.com
http://www.jdom.org
16。XML with Perl
http://www.perlxml.com
17。XML with C
http://www.xmlsoft.org
18。Free XML Tools and Software
http://www.garshol.priv.no/download/xmltools/
電子商務:
1。ebXML
http://www.ebxml.org
2。UDDI
http://www.uddi.org
http://uddi-china.org
3。XML/EDI
http://www.xmledi-group.org
一. XML的大本營
XML是由W3C(World Wide Web Consortium)國際組織負責開發和制定標準的。
關於XML最權威,最新的消息都來自W3C。網址是:http://w3c.org/XML/
另外一個名爲OASIS的前著名的SGML研究組織也在一起推動XML的發展,
網址是:http://www.oasis-open.org/
二. XML指南
http://www.w3.org/TR/REC-xml
W3C關於XML規範的詳細,完整的說明。不用多說,絕對權威。
http://www.xml.com/axml/testaxml.htm
這是Tim Bary寫的XML規範說明書,非常的詳細和嚴密,是學習XML規範的好幫手。
三. XML常見問題
Peter Flynn的 XML FAQ
http://www.ucc.ie/xml/
包含大量詳細的資料,經常更新,由W3C協會XML組維護。
Lisa Rein’s finetuning XML FAQs
http://www.finetuning.com/faq.html
這個FAQ列表有側重點,主要包含XSLT FAQ,XPath FAQ和IE5中的XSL FAQ。
Dave Pawson’s XSL FAQ
http://www.dpawson.co.uk/xsl/idx.html
提供最好的關於XSL方面的FAQ,創建於1999年。
jGuru’s Extensible Markup Language (XML) FAQ
http://www.jguru.com/jguru/faq/faqpage.jsp?name=XML
這個FAQ列表是一個典型的"老百曉",任何問題,從普通的到非常細節的XML問題都可以在這裏找到。
Ronald Bourret’s XML Namespaces FAQ
http://www.informatik.tu-darmstadt....ff/bourret/xml/
NamespacesFAQ.htm
創建於2000初,是關於namespaces概要的FAQ。
四. XML主題網站
http://www.xml.com/
一個以XML爲主題的內容豐富的網站
http://www.xml-zone.com/
另一個比較知名的XML網站,提供XML的新聞和資訊。
http://www.xmlinfo.com/
網站創建者James Tauber’s是W3C組織XML發展組的成員之一,他的網站提供了大量的連接和例子。
http://www.simonstl.com/
網站創建者Simon St. Laurent也是XML發展組的成員。他是W3C中XML初級入門教程的作者,他的站點主要提供有關XML的發展信息。
http://msdn.microsoft.com/xml/c-fra...xml/default.asp
微軟的MSDN關於XML的主題網站。微軟在推進XML應用方面不遺餘力。
http://www.xmlsoftware.com/
是XML info的姐妹網站,內容包括XML/DTD/XSL編輯軟件,XML API軟件等。
http://xmlhack.com/
1999年9月建立的大型XML新聞網站,同時提供XML人才信息。
http://xml.apache.org/
Apache軟件基金會(ASF),提供了大量open source的XML和XSL的工具軟件。
http://www.biztalk.org/
BizTalk是微軟發起的以XML商業應用爲目標的組織。BizTalk不是一個標準組織。
五. XML的編輯軟件
目前XML文檔的編輯軟件依然很少。雖然我們可以手工編寫,但是如果有一個好的軟件(類似用DW/FP編寫HTML),可以減少差錯和提高效率。下面是現有的一些編輯軟件。
http://www.macromedia.com/software/dreamweaver/
Macromedia最新的Dreamweaver 4.0已經支持XML文檔的編寫。推薦使用。
http://www.microsoft.com/xml/notepad/intro.asp
微軟在這方面向來不會落後,它推出的XML Notepad是一個非常小巧靈活的XML文檔編輯器。推薦使用。
http://www.adobe.com/prodindex/fram...odinfosgml.html
Adobe公司的Framemaker plus是目前較好的XML編輯軟件。
http://www.arbortext.com/
Arbortext公司是重點開發XML遊戲的公司。
http://www.inso.com/
Inso,好象是用來處理大型SGML或者XML文檔的軟件。
http://www.softquad.com/
Softquad 是HTML和SGML軟件的開發商,對XML自然不會放過。
六. 支持XML的瀏覽器
http://www.microsoft.com/windows/ie/
IE 5.X是目前流行瀏覽器唯一支持XML的,它可以在微軟的網站免費下載到。
http://developer.netscape.com/softw...mmunicator/ngl/
index.html?cp=dev09fg01
Gecko是另一種支持XML的瀏覽器,但目前只是測試版。
七. XML parser
Parser是一個檢查XML文檔語法是否符合DTD定義,並進行解析的軟件。
在線的parser
http://validator.w3.org/
W3C組織提供的一個在線paeser。可以根據你在線提交的XML文檔URL,進行驗證和解吸。
http://www.stg.brown.edu/service/xmlvalid/
一個Brown大學科技小組提供的parser,非常方便和容易理解。。
可下載的Parser
有很多可以下載到本機上運行的parser,下面列出一些主要的:
http://www.jclark.com/xml/expat.html
James Clark是在SGML/XML領域的元老,他寫的parser被廣泛的運用。
http://www.alphaworks.ibm.com/tech/xml
一個以Java語言編寫的Parser,來自IBM。
http://www.microsoft.com/xml/parser/cparser.asp
微軟的XML Parser,用C++寫成。
http://www.microsoft.com/downloads/...&displaylang=en
用Python寫的parser。
http://www.jeremie.com/Dev/XML/
用javascript寫的parser,只用來檢查語法,不進行解吸析。
http://w3c.org/RDF/Implementations/SiRPAC/
來自W3C組織的SiRPAC,全稱是Simple RDF Parser and Compiler。
八. Schema編輯軟件
Schema我們前面介紹過,DTD就是一種Schema,我們可以手工寫DTD,但現在已經有一些Schema編輯軟件來幫助我們更方便的建立DTD。
http://www.extensibility.com/
Extensibility這個軟件被稱爲XML權威。可以以圖形化方式建立和編輯schema,包括DTD文件。
九. 國內XML資源
http://www.xml.net.cn/
XML中國論壇是一個非贏利的學術網站。由北京大學計算機科學與技術研究所創辦,北大方正集團公司提供贊助。
http://www.xml.org.cn:8188 (admin注:原來的中國XML聯盟網站(www.xml.org.cn)已經不存在了.現在的 www.xml.org.cn 已經不是中國XML聯盟了.)
中國XML聯盟將建立爲國內第一個開放性網絡標準組織,提供XML技術認證、諮詢和交流。由上海易方公司贊助。
http://www.xml.com.cn/
chinaasp.com的子站,提供XML文章和技術交流等。
http://www.egroups.com/group/china_xml_list/info.html
中國XML郵件組包括中文XML資源, XML的最新資料,同行的交流空間。由非盈利性組織中國XML聯盟負責維護。
http://weblab.crema.unimi.it/xmlzh/XML_FAQ.htm
http://www.perfectxml.com/
也是一個學習xml不錯的站點。
本貼絕大部分資源均轉自www.xml.org.cn
聲明先,免得有人說偶盜鏈 SHOW TIME
2、黃金裝備
XML Explorer簡體中文正式版(免費)XML.ORG.CN下載
(推薦這個,簡單易用,比冰火雙劍還要牛X)
介紹
XML Explorer是一個XML和schema編輯器。它簡單易用,可以展現多個窗口。可從樹狀圖、列表、表格、
文字模式和跳出式編輯區等方式操作任何XML資料。
* 它的copy and paste功能可以讓使用者複製任何XML 文字到系統剪貼簿上,然後貼到任何XML Explorer窗口。
* 它支持雙向xpath,所以只要點任何XML節點或屬性,一個標準的Xpath就出來了。
* 它兩欄的文字展現方式方便比較和編輯。
* 它的schema完全支持樹狀圖、列表、集合觀看模式、文字模式。
* 有了它,你還能輕易把微軟Excel、Access和任何ODBC資料轉成XML格式。
* 新版本在表格模式包含了XML資料分析功能。
Special Thanks: 感謝David Ren(mergesoft.com)免費爲本站提供正式版本和註冊碼。
注意:該版本和註冊碼只限於在中國大陸地區使用。
註冊碼:1096DFDE-1962-43A0-0000-005DXBDIPKSD
英文版:http://download.xml.org.cn/XMLExplorer.msi
中文版:http://download.xml.org.cn/XMLExplorerCN.msi
中文版補丁:http://download.xml.org.cn/xmlexplorer268cn.rar
其他工具下載:
http://bbs.xml.org.cn/dispbbs.asp?boardID=35&ID=6191
其他資源下載:
http://bbs.xml.org.cn/resource.asp
一下將採用作者“小鞋子”的入門教程,某些部分略有修改
3、定義標記
<?xml version="1.0"?>
<book>
<title>XML</title>
<author>lisongtao</author>
</book>
如果文檔中包含中文,就要加入編碼
<?xml version="1.0" encoding="GB2312"?>
關於編碼,參見“無廢話XML”的相關魔鬼教程。。。
4、使用CSS樣式
<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="1.css"?>
<lisongtao>
Hello the world!
</lisongtao>
---------------------------------------------
1.CSS
----------------------------------------
lisongtao {display: block; font-size: 48pt; font-weight: bold;}
5、用XSL定義
什麼叫“XSL”,你可以暫且看作一個類似CSS,但比CSS更強的東西。XML語法參見其它教程,不廢話這裏。
1.XML
--------------------------------------------
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="2.xsl"?>
<lisongtao>
Hello the world!
</lisongtao>
---------------------------------------------
2.xsl
----------------------------------------
<?xml version="1.0" encoding="gb2312"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<html>
<head>
<title>hello the world</title>
</head>
<body bgcolor="#CCCCFF">
<h1 align="center"><xsl:value-of select="lisongtao"/></h1>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
6、註釋
沒什麼好多講的,和JS一樣
<?xml version="1.0" encoding="gb2312"?>
<!--
這是一些有關書的信息
-->
<books>
<book>
<name>xml應用</name>
<author>list1</author>
<price>55.00</price>
</book>
</books>
7、節點的屬性
<?xml version="1.0"?>
<books title="list">
<book>
<name>xml and asp</name>
<price>45.00</price>
<publisher>tsinghua </publisher>
</book>
</books>
8、特殊標記
XML中,< > " ' &特殊標記時,應當用< > "l ' &表示
<?xml version="1.0"?>
<books height="6'5'">
<book width="6"5"">
<name>list &lisongtao</name>
<author>lisongtao < [email protected]></author>
</book>
</books>
9、中文標記
汗。。。。又一個XLTXLM性的自戀狂。。
雖然XML支持中文標籤,但不建議使用。
<?xml version="1.0" encoding="gb2312"?>
<好人 >
<name>小鞋子</name>
</好人>
10、DTD數據格式
你可以暫且把DTD看作一種規則,它保證xml按照這些規則來定義數據格式。
1.DTD
=====================
<?xml version="1.0"?>
<!ELEMENT book (price,name)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT price (#PCDATA)>
查資料:如果同一節點含有多個字節點,應該如何定義了?
=====================
DTD.XML
==================
<?xml version="1.0"?>
<!DOCTYPE book SYSTEM "1.dtd">
<book>
<name>lisongtao</name>
<price>11.2</price>
</book>
11、DTD直接寫在XML裏面
<?xml version="1.0"?>
<!DOCTYPE book [
<!ELEMENT book (price,name)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT price (#PCDATA)>
]>
<book>
<price>11.2</price>
<name>lisongtao</name>
</book>
12、節點的多屬性
<?xml version="1.0" encoding="gb2312"?>
<books>
<book name=" xml應用" author="list1" price="55.00">
</book>
</books>
13、結束標記另一種方法
不推薦。。。
<?xml version="1.0" encoding="gb2312"?>
<books>
<book name=" xml應用" author="list1" price="55.00"[color]/[/color]>
</books>
14、直接顯示包含特殊字符
前面我們看到了,< > " ' &等特殊字符須手動修改後才能顯示,如果大量了?。。。就用CDATA
<?xml version="1.0" encoding="gb2312"?>
<books>
<![CDATA[
<book>
<name>xml應用</name>
<author>list1</author>
<price>55.00</price>
</book>
]]>
<book>
<name>xml應用</name>
<author>list1</author>
<price>55.00</price>
</book>
</books>
15、小結,一個完整的XML
<?xml version="1.0" encoding="gb2312"?>
<!--這是一個學生選課系統的所有數據-->
<choose_system>
<students>
<student id="984610" lesson_id="11">
<name>咚咚</name>
<age>25</age>
<sex>男</sex>
<department>自動化</department>
</student>
<student id="984611" lesson_id="12">
<name>礦哥</name>
<age>26</age>
<sex>男</sex>
<department>自動化</department>
</student>
<student id="984612" lesson_id="11">
<name>歡迎新村民</name>
<age>23</age>
<sex>男</sex>
<department>自動化</department>
</student>
<student id="984613" lesson_id="12">
<name>張明</name>
<age>25</age>
<sex>男</sex>
<department>自動化</department>
</student>
</students>
<lessons>
<lesson id="11">
<name>控制原理</name>
<num>12</num>
<les_start>99.2</les_start>
<les_end>99.7</les_end>
<end_method>考試</end_method>
</lesson>
<lesson id="12">
<name>網絡原理</name>
<num>11</num>
<les_start>99.3</les_start>
<les_end>99.6</les_end>
<end_method>通過</end_method>
</lesson>
</lessons>
<teachers>
<teacher id="1122" lesson_id="11">
<name>開心啊</name>
<age>33</age>
<tea_age>3</tea_age>
<rank>教授</rank>
<publish>控制原理</publish>
<sex>男</sex>
</teacher>
<teacher id="1123" lesson_id="12">
<name>還是開心啊</name>
<age>40</age>
<tea_age>7</tea_age>
<rank>副教授</rank>
<publish>網絡原理</publish>
<sex>男</sex>
</teacher>
</teachers>
</choose_system>
代碼:
--------------------------------------------------------------------------------
16、CSS樣式定義節點
<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="1.css"?>
<books>
<book>
<author>lisongtao</author>
<name>the application of ASP</name>
</book>
</books>
---------------------------------------------------------
1.css
-----------------------------------------------------------
books
{
display:block;
}
book
{
display:block;
background-color:#aabbcc
}
---------------------------------------------
心得:以上的定義方法和重定義HTML的標籤樣式一樣,如對CSS不熟者,推薦用DW生成後再對應一下效果.很易就可以學會的.
17、樣式類定義XML
<?xml version="1.0" standalone="yes"?>
<?xml-stylesheet type="text/css" href="3.css"?>
<list class="listclass">
<sublist class="listsmall">lisongtao</sublist>
<sublist>zhongguo</sublist>
</list>
----------------------------------------------------------
3.css
.listclass {color: red; font-size:26pt}
.listsmall {color:blue; font-size:15pt}
18、類的ID定義XML
<?xml version="1.0" standalone="yes"?>
<?xml-stylesheet type="text/css" href="ID.css"?>
<school>
<class id="list">lisongtao</class>
<monitor id="list1">lisongtao</monitor>
</school>
---------------------------------
ID.CSS
--------------------------------------------------
#list {font-size:28pt; color:red; display: block}
#list1 {font-size:14pt; color:blue display: block }
19、XML中直接使用CSS
<?xml version="1.0" standalone="yes"?>
<?xml-stylesheet type="text/css" href="sevil.txt"?>
<!--這句一定要有,而SEVIL.TXT可以換別的名字,不過中文好像這裏不行.-->
<FOO STYLE="font-weight: bold;color:red">
Hello XML!
</FOO>
20、在一個樣式表中合併引用另一個樣式表的方法
@import url("sevil.css");
21、用CSS定製個節點的塊狀顯示
XML.XML
--------------------------------------------------------------------------------
<?xml version="1.0" encoding="gb2312"?>
<?xml-stylesheet type="text/css" href="CSS.css"?>
<books xmlns:HTML="http://www.w3.org/Profiles/XHTML-transitional">
<HTML:style>
books
{
display:block;
width:30em;
}
</HTML:style>
<book>
<author>list </author>
<name> ASP及其應用</name>
<publisher>Tsinghua University</publisher>
<price>12.30</price>
</book>
<book>
<author>James </author>
<name> XML及其應用</name>
<publisher>Tsinghua University</publisher>
<price>15.30</price>
</book>
<book>
<author>John </author>
<name> CSS及其應用</name>
<publisher>Peiking University</publisher>
<price>16.30</price>
</book>
</books>
---------------------------------------------------------------
CSS.CSS
---------------------------------------------------------------
book
{
display:block;
background-color:#AABBCC;
padding:1.2em;
margin-bottom:1em;
}
author
{
display:block;
font-size:16pt;
color:red;
}
22、在同一個XML文件內引用多個CSS樣式表的方法
<?xml version="1.0" standalone="yes"?>
<?xml-stylesheet type="text/css" href="1.css"?>
<?xml-stylesheet type="text/css" href="2.css"?>
23、在XML中使用HTML標記的方法,例插入圖片
<?xml version="1.0" encoding="gb2312"?>
<?xml-stylesheet type="text/css"?>
<books xmlns:HTML="http://www.w3.org/Profiles/XHTML-transitional">
<book>
<author>list </author>
<name> ASP及其應用</name>
<publisher>Tsinghua University</publisher>
<price>12.30</price>
<HTML:img src="suzh1.jpg" />
</book>
</books>
24、在XML中使用HTML標記的方法(2),使用超連接
<?xml version="1.0" encoding="gb2312"?>
<?xml-stylesheet type="text/css"?>
<books xmlns:HTML="http://www.w3.org/Profiles/XHTML-transitional">
<book>
<author>list </author>
<name> ASP及其應用</name>
<publisher>Tsinghua University</publisher>
<price>12.30</price>
[colorred]<from><HTML:a href="http://www.263.net">263中國在線</HTML:a></from>[/color]
</book>
</books>
25、在XML中使用HTML標記(3),使用<BR><p>等標記
<?xml version="1.0" encoding="gb2312"?>
<?xml-stylesheet type="text/css"?>
<books xmlns:HTML="http://www.w3.org/Profiles/XHTML-transitional">
<book>
<HTML:P>
<author>list </author>
</HTML:P>
<name> ASP及其應用</name>
<publisher>Tsinghua University</publisher>
<HTML:br/>
<price>12.30</price>
</book>
</books>
26、在XML中使用HTML標記的方法(4),使用表格標籤
<?xml version="1.0" encoding="gb2312"?>
<?xml-stylesheet type="text/css"?>
<books xmlns:HTML="http://www.w3.org/Profiles/XHTML-transitional">
<book>
<HTML:TABLE border="1.0" align="center">
<HTML:TR>
<HTML:TD>LIST</HTML:TD>
<HTML:TD>ASP PROGRAMING</HTML:TD>
<HTML:TD>TSINGHUA UNIVERSITY</HTML:TD>
</HTML:TR>
</HTML:TABLE>
</book>
</books>
27、在XML中使用HTML標記的方法(5),使用表單
汗。。。。這樣子就沒意思了,僅供參考
<?xml version="1.0" encoding="gb2312"?>
<?xml-stylesheet type="text/css"?>
<books xmlns:HTML="http://www.w3.org/Profiles/XHTML-transitional">
<book>
<HTML:TABLE border="0" align="center">
<HTML:TR>
<HTML:TD>NAME</HTML:TD>
<HTML:TD><HTML:INPUT TYPE="TEXT"/></HTML:TD>
</HTML:TR>
<HTML:TR>
<HTML:TD>NAME</HTML:TD>
<HTML:TD><HTML:INPUT TYPE="TEXT"/></HTML:TD>
</HTML:TR>
<HTML:TR>
<HTML:TD>NAME</HTML:TD>
<HTML:TD><HTML:INPUT TYPE="TEXT"/></HTML:TD>
</HTML:TR>
</HTML:TABLE>
<HTML:CENTER>
<HTML:INPUT TYPE="SUBMIT"/><HTML:INPUT TYPE="RESET"/>
</HTML:CENTER>
</book>
</books>
28、在XML中使用HTML標記的方法(6),使用JS腳本
<?xml version="1.0" encoding="gb2312"?>
<?xml-stylesheet type="text/css"?>
<books xmlns:HTML="http://www.w3.org/Profiles/XHTML-transitional">
<HTML:SCRIPT language="javascript">
var fRunning = 0
function startTrans()
{
if (fRunning == 0)
{
fRunning = 1
SampleID.filters.revealTrans.Apply();
SampleID.src = "suzh1.jpg";
SampleID.filters.revealTrans.Play()
}
else
{
fRunning = 0
SampleID.filters.revealTrans.Apply();
SampleID.src = "suzh2.jpg";
SampleID.filters.revealTrans.Play()
}
}
</HTML:SCRIPT>
<HTML:IMG id="SampleID" src="suzh2.jpg" width="200" height="200" style="filter:revealTrans(duration=3)" οnclick="startTrans()" />
<HTML:BR />
Click image for Transition Filter: Blend
</books>
29、總結CSS/HTML:
其實在XML裏面調用CSS來顯示統一的樣式很簡單,主要通過一個
<?xml-stylesheet type="text/css" href="1.css"?>
這樣的方法來聯繫起來.最好能先學學CSS的語法這樣對大家很有好處.如果不太會的話,也可以用DW來自動生成CSS樣式表後再聯起來.呵.
致於調用HTML標記可以用<HTML:標記>這樣的方法來實現.但一定要注意記他合乎XML的規則就行了.
30、通過XSL顯示XML
XML.XML
----------------------------------------------------------
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="1.xsl"?>
<!--連接XSL的方法,是不是和連接CSS很像啊??呵.-->
<persons>
<person>
<name> lisongtaow </name>
<age>25</age>
<tel>66666666</tel>
</person>
<person>
<name> lisongtao1</name>
<age>26</age>
<tel>66666667</tel>
</person>
<person>
<name>lisongtao3</name>
<age>28</age>
<tel>66666669</tel>
</person>
</persons>
-----------------------------------------------------------------------
1.xsl
----------------------------------------------------------------------
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<html>
<body>
<center>
<h2>the notepad</h2>
<table border="1">
<tr>
<td>name</td>
<td>age</td>
<td>tel</td>
</tr>
<xsl:for-each select="persons/person">
<tr>
<td><xsl:value-of select="name"/></td>
<td><xsl:value-of select="age"/></td>
<td><xsl:value-of select="tel"/></td>
</tr>
</xsl:for-each>
<!--循環輸出語塊,其中"persons/person"代表着路徑-->
</table>
</center>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
31、XSL小結
做完這個例子先總結一下:
在XSL的定義方法其實是一個HTML的全顯示格式.我們可以用DW直觀的編輯好.再加入代碼.
這裏XSL我們可以理解成爲一個模板.
其主要的定義方法有一個規則:
以後我們再寫XSL時就可以把這東東COPY出來了.不用老是對着書打.呵...
(用XML編輯器更快。。。^_^)
--------------------------------------------------------------
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
</xsl:template>
</xsl:stylesheet>
-----------------------------------------------------------
32、輸出某節點下的所有內容..
上一例子我們成功地用XSL輸出了XML裏面數據.
如果我們只要輸出某相同節點其下的內容.我們可以這樣做.
=======================
1.xml
要求:輸出XSL的"persons/person/tel/hometel"下面的所有內容.這裏"person"可以是多層
--------------------------------------------------------
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="2.xsl"?>
<persons>
<person>
<name>lisongtao</name>
<age>25</age>
<tel><hometel>
<tel>64456787</tel>
<childhometel>64456785</childhometel>
</hometel>
<offtel>44442222</offtel>
<worktel>3333333</worktel>
</tel>
</person>
<person>
<name>liwei</name>
<age>25</age>
<tel><hometel>
<tel>66545434</tel>
<childhometel>65433333</childhometel>
</hometel>
<offtel>64442222</offtel>
<worktel>6333333</worktel>
</tel>
</person>
<person>
<name>zhangxue</name>
<age>25</age>
<tel><hometel>
<tel>84343434</tel>
<childhometel>8333333</childhometel>
</hometel>
<offtel>84442222</offtel>
<worktel>8333333</worktel>
</tel>
</person>
<person>
<name>wure</name>
<age>26</age>
<tel>66666667</tel>
</person>
</persons>
================================
2.xsl
-----------------------------------------------------------
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<html>
<body>
<center>
<h2>the notepad</h2>
<table border="1">
<tr>
<td>name</td>
</tr>
<xsl:for-each select="persons/person/tel/hometel/*">
<tr>
<td><xsl:value-of select="."/></td>
</tr>
</xsl:for-each>
<!--注意FOR-EACH的SELECT路徑.然後用value-OF輸出全部所要求的節點內容-->
</table>
</center>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
33、用XSL讓XML文件使用到節點屬性的搜索功能
xml.xml
---------------------------------------------------------------------------------------
<?xml version="1.0" encoding="gb2312"?>
<?xml-stylesheet type="text/xsl" href="xsl.xsl"?>
<students>
<student id="98789">
<name>廖西</name>
<sex>女</sex>
<birthday type="陽曆">1987.2</birthday>
<phone>1303456787</phone>
<skill>唱歌</skill>
<dd>asdf
<ee>asdf</ee></dd>
<list>asdf</list>
</student>
<student id="98788">
<name>小記</name>
<sex>女</sex>
<birthday>1975.6</birthday>
<phone>13901145678</phone>
<skill>爬山</skill>
</student>
<student id="98785">
<name>江南</name>
<sex>女</sex>
<birthday>1978.8</birthday>
<phone>64576786</phone>
<skill>網絡</skill>
</student>
<student>
<name>小紅</name>
<sex>男</sex>
<birthday>1976.2</birthday>
<phone>62775466</phone>
<skill>網絡</skill>
<skill>書法</skill>
</student>
</students>
--------------------------------------------------------------------
xsl.xsl
---------------------------------------------------------------
<?xml version="1.0" encoding="gb2312"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<center> <h1>學號是"98789"的學生的生日是:<xsl:value-of select="/students/student[@id='98789']/birthday"/>
</h1></center>
</xsl:template>
</xsl:stylesheet>
34、資源及相關
以上教程均轉自www.xml.org.cn,版權作者小鞋子所有,特此聲明。
XML 資源:
1。W3C 的網站
http://www.w3.org/XML/
2。XML.com
http://www.xml.com
3。xml zone
http://www.xml-zone.com
4。XML.org
http://www.xml.org
5。XML Cover Pages
http://xml.coverpages.org
6。OASIS
http://www.oasis-open.org
7。XMLINFO.com
http://www.xmlinfo.com
8。STARTKABEL
http://xml.startkabel.nl
9。XMLAdvantage
http://www.xmladvantage.com
10。Chinese XML Now!
http://www.ascc.net/xml/
11。simonstl.com
http://www.simonstl.com
12。XML ARENA
http://www.xmlarena.com
13。XML 資源目錄
http://www.xmldir.com/
14。XML Tree
http://www.xmltree.com
XML 教程:
1。XML FAQ
http://www.ucc.ie/xml/
2。無廢話 XML -- 網上最好的 XML 入門教程
http://2tigers.net/xml_book/wfhxml_gb.zip
http://www.xml.org.cn:8188/docs/download/wfhxml_gb.zip
http://www.helpwork.net/downdata/bo...k/wfhxml_gb.zip
3。XML Bible
http://www.ibiblio.org/xml/books/bible/
http://www.mmg.vmei.acad.bg/xml/
《XML Bible》的中譯本爲中國水利水電出版社的《XML實用大全》一書,XML 中國論壇已將此書做成了電子版共享,
請看這裏:
http://www.xml.net.cn/ASPs/book_catalog.asp?bookid=02
在此向 XML 中國論壇所做出的努力表示由衷的感謝!
4。IBM 站點上的 XML 教程 (需註冊)
http://www.ibm.com/developerworks/xml/
http://www.ibm.com/developerworks/e...ecourse-bytitle
http://www.ibm.com/developerworks/webservices/
http://www-900.ibm.com/developerWorks/xml/
(IBM 的 DeveloperWorks 中文版上的 XML 專欄,強烈推薦!)
5。W3Schools.com
http://www.w3schools.com
6。zvon.org
http://www.zvon.org
7。xmlpitstop.com
http://www.xmlpitstop.com
8。Cafe con Leche XML News and Resources
http://www.ibiblio.org/xml/
9。一個免費 XML 教程的列表
http://www.intelinfo.com/newly_rese...aining/XML.html
比較好的 XML 編輯器:
1。XML Spy
http://www.xmlspy.com
2。EditML Pro
http://www.editml.com
3。PSGML for Emacs
http://sourceforge.net/projects/psgml/
與 XML 技術有關的軟件項目:
1。支持 XML 的瀏覽器 -- Mozilla
http://www.mozilla.org/newlayout/xml/
2。Apache 基金會的 XML 項目
http://xml.apache.org
3。Apache 基金會的 Jakarta 項目
http://jakarta.apache.org
4。可用的 XML 軟件列表
http://www.xmlsoftware.com
5。可用的 XML 軟件列表
http://www.oasis-open.org/cover/publicSW.html#xmlTools
6。XML hack
http://xmlhack.com
7。Sun 站點上的 XML 軟件
http://www.sun.com/xml/
http://www.sun.com/software/xml/
http://www.sun.com/xml/developers/
http://java.sun.com/xml/
8。IBM 站點上的 XML 軟件
http://www.ibm.com/developerworks/xml/
9。Oracle 站點上的 XML 軟件
http://technet.oracle.com/tech/xml/
10。XSLT.com
http://www.xslt.com
11。SOAP & WebServices
http://www.soap-wrc.com
http://www.soapware.org
12。XML-RPC
http://www.xmlrpc.com
13。WDDX
http://www.openwddx.org
14。Komodo
http://aspn.activestate.com/ASPN/Downloads/Komodo/More
15。XML with Java
http://developerlife.com
http://www.jdom.org
16。XML with Perl
http://www.perlxml.com
17。XML with C
http://www.xmlsoft.org
18。Free XML Tools and Software
http://www.garshol.priv.no/download/xmltools/
電子商務:
1。ebXML
http://www.ebxml.org
2。UDDI
http://www.uddi.org
http://uddi-china.org
3。XML/EDI
http://www.xmledi-group.org
一. XML的大本營
XML是由W3C(World Wide Web Consortium)國際組織負責開發和制定標準的。
關於XML最權威,最新的消息都來自W3C。網址是:http://w3c.org/XML/
另外一個名爲OASIS的前著名的SGML研究組織也在一起推動XML的發展,
網址是:http://www.oasis-open.org/
二. XML指南
http://www.w3.org/TR/REC-xml
W3C關於XML規範的詳細,完整的說明。不用多說,絕對權威。
http://www.xml.com/axml/testaxml.htm
這是Tim Bary寫的XML規範說明書,非常的詳細和嚴密,是學習XML規範的好幫手。
三. XML常見問題
Peter Flynn的 XML FAQ
http://www.ucc.ie/xml/
包含大量詳細的資料,經常更新,由W3C協會XML組維護。
Lisa Rein’s finetuning XML FAQs
http://www.finetuning.com/faq.html
這個FAQ列表有側重點,主要包含XSLT FAQ,XPath FAQ和IE5中的XSL FAQ。
Dave Pawson’s XSL FAQ
http://www.dpawson.co.uk/xsl/idx.html
提供最好的關於XSL方面的FAQ,創建於1999年。
jGuru’s Extensible Markup Language (XML) FAQ
http://www.jguru.com/jguru/faq/faqpage.jsp?name=XML
這個FAQ列表是一個典型的"老百曉",任何問題,從普通的到非常細節的XML問題都可以在這裏找到。
Ronald Bourret’s XML Namespaces FAQ
http://www.informatik.tu-darmstadt....ff/bourret/xml/
NamespacesFAQ.htm
創建於2000初,是關於namespaces概要的FAQ。
四. XML主題網站
http://www.xml.com/
一個以XML爲主題的內容豐富的網站
http://www.xml-zone.com/
另一個比較知名的XML網站,提供XML的新聞和資訊。
http://www.xmlinfo.com/
網站創建者James Tauber’s是W3C組織XML發展組的成員之一,他的網站提供了大量的連接和例子。
http://www.simonstl.com/
網站創建者Simon St. Laurent也是XML發展組的成員。他是W3C中XML初級入門教程的作者,他的站點主要提供有關XML的發展信息。
http://msdn.microsoft.com/xml/c-fra...xml/default.asp
微軟的MSDN關於XML的主題網站。微軟在推進XML應用方面不遺餘力。
http://www.xmlsoftware.com/
是XML info的姐妹網站,內容包括XML/DTD/XSL編輯軟件,XML API軟件等。
http://xmlhack.com/
1999年9月建立的大型XML新聞網站,同時提供XML人才信息。
http://xml.apache.org/
Apache軟件基金會(ASF),提供了大量open source的XML和XSL的工具軟件。
http://www.biztalk.org/
BizTalk是微軟發起的以XML商業應用爲目標的組織。BizTalk不是一個標準組織。
五. XML的編輯軟件
目前XML文檔的編輯軟件依然很少。雖然我們可以手工編寫,但是如果有一個好的軟件(類似用DW/FP編寫HTML),可以減少差錯和提高效率。下面是現有的一些編輯軟件。
http://www.macromedia.com/software/dreamweaver/
Macromedia最新的Dreamweaver 4.0已經支持XML文檔的編寫。推薦使用。
http://www.microsoft.com/xml/notepad/intro.asp
微軟在這方面向來不會落後,它推出的XML Notepad是一個非常小巧靈活的XML文檔編輯器。推薦使用。
http://www.adobe.com/prodindex/fram...odinfosgml.html
Adobe公司的Framemaker plus是目前較好的XML編輯軟件。
http://www.arbortext.com/
Arbortext公司是重點開發XML遊戲的公司。
http://www.inso.com/
Inso,好象是用來處理大型SGML或者XML文檔的軟件。
http://www.softquad.com/
Softquad 是HTML和SGML軟件的開發商,對XML自然不會放過。
六. 支持XML的瀏覽器
http://www.microsoft.com/windows/ie/
IE 5.X是目前流行瀏覽器唯一支持XML的,它可以在微軟的網站免費下載到。
http://developer.netscape.com/softw...mmunicator/ngl/
index.html?cp=dev09fg01
Gecko是另一種支持XML的瀏覽器,但目前只是測試版。
七. XML parser
Parser是一個檢查XML文檔語法是否符合DTD定義,並進行解析的軟件。
在線的parser
http://validator.w3.org/
W3C組織提供的一個在線paeser。可以根據你在線提交的XML文檔URL,進行驗證和解吸。
http://www.stg.brown.edu/service/xmlvalid/
一個Brown大學科技小組提供的parser,非常方便和容易理解。。
可下載的Parser
有很多可以下載到本機上運行的parser,下面列出一些主要的:
http://www.jclark.com/xml/expat.html
James Clark是在SGML/XML領域的元老,他寫的parser被廣泛的運用。
http://www.alphaworks.ibm.com/tech/xml
一個以Java語言編寫的Parser,來自IBM。
http://www.microsoft.com/xml/parser/cparser.asp
微軟的XML Parser,用C++寫成。
http://www.microsoft.com/downloads/...&displaylang=en
用Python寫的parser。
http://www.jeremie.com/Dev/XML/
用javascript寫的parser,只用來檢查語法,不進行解吸析。
http://w3c.org/RDF/Implementations/SiRPAC/
來自W3C組織的SiRPAC,全稱是Simple RDF Parser and Compiler。
八. Schema編輯軟件
Schema我們前面介紹過,DTD就是一種Schema,我們可以手工寫DTD,但現在已經有一些Schema編輯軟件來幫助我們更方便的建立DTD。
http://www.extensibility.com/
Extensibility這個軟件被稱爲XML權威。可以以圖形化方式建立和編輯schema,包括DTD文件。
九. 國內XML資源
http://www.xml.net.cn/
XML中國論壇是一個非贏利的學術網站。由北京大學計算機科學與技術研究所創辦,北大方正集團公司提供贊助。
http://www.xml.org.cn:8188 (admin注:原來的中國XML聯盟網站(www.xml.org.cn)已經不存在了.現在的 www.xml.org.cn 已經不是中國XML聯盟了.)
中國XML聯盟將建立爲國內第一個開放性網絡標準組織,提供XML技術認證、諮詢和交流。由上海易方公司贊助。
http://www.xml.com.cn/
chinaasp.com的子站,提供XML文章和技術交流等。
http://www.egroups.com/group/china_xml_list/info.html
中國XML郵件組包括中文XML資源, XML的最新資料,同行的交流空間。由非盈利性組織中國XML聯盟負責維護。
http://weblab.crema.unimi.it/xmlzh/XML_FAQ.htm
http://www.perfectxml.com/
也是一個學習xml不錯的站點。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.