【转】XML基础学习

[color=red][b]1、前言[/b][/color]
本贴绝大部分资源均转自[url]www.xml.org.cn[/url]
声明先,免得有人说偶盗链 SHOW TIME


[color=red][b]2、黄金装备[/b][/color]
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

英文版:[url]http://download.xml.org.cn/XMLExplorer.msi[/url]
中文版:[url]http://download.xml.org.cn/XMLExplorerCN.msi[/url]
中文版补丁:[url]http://download.xml.org.cn/xmlexplorer268cn.rar[/url]

其他工具下载:
[url]http://bbs.xml.org.cn/dispbbs.asp?boardID=35&ID=6191[/url]
其他资源下载:
[url]http://bbs.xml.org.cn/resource.asp[/url]

一下将采用作者“小鞋子”的入门教程,某些部分略有修改



[color=red][b]3、定义标记[/b][/color]
<?xml version="1.0"?>
[color=red]<book>[/color]
    [color=blue]<title>[/color]XML[color=blue]</title>[/color]
    [color=blue]<author>[/color]lisongtao[color=blue]</author>[/color]
[color=red]</book>[/color]
如果文档中包含中文,就要加入编码
<?xml version="1.0" encoding="[color=black]G[/color]B2312"?>
关于编码,参见“无废话XML”的相关魔鬼教程。。。



[color=red][b]4、使用CSS样式[/b][/color]
<?xml version="1.0"?>
[color=red]<?xml-stylesheet type="text/css" href="1.css"?>[/color]
<lisongtao>
Hello the world!
</lisongtao>
---------------------------------------------
1.CSS
----------------------------------------
lisongtao {display: block; font-size: 48pt; font-weight: bold;}



[color=red][b]5、用XSL定义[/b][/color]
什么叫“XSL”,你可以暂且看作一个类似CSS,但比CSS更强的东西。XML语法参见其它教程,不废话这里。

1.XML
--------------------------------------------
<?xml version="1.0"?>
[color=red]<?xml-stylesheet type="text/xsl" href="2.xsl"?>[/color]
<lisongtao>
Hello the world!
</lisongtao>
---------------------------------------------
2.xsl
----------------------------------------
<?xml version="1.0" encoding="[color=black]g[/color]b2312"?>
[color=red]<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">[/color]
[color=red]<xsl:template match="/"> [/color]
<html>
<head>
<title>hello the world</title>
</head>
<body bgcolor="#CCCCFF">
<h1 align="center">[color=red]<xsl:value-of select="lisongtao"/>[/color]</h1>
</body>
</html>
[color=red]</xsl:template>
</xsl:stylesheet>[/color]



[color=red][b]6、注释[/b][/color]
没什么好多讲的,和JS一样
<?xml version="1.0" encoding="[color=black]g[/color]b2312"?>
[color=red]<!--
这是一些有关书的信息
-->[/color]
<books>
    <book>
        <name>xml应用</name>
<author>list1</author>
        <price>55.00</price>
</book>
</books>



[color=red][b]7、节点的属性[/b][/color]
<?xml version="1.0"?>
<books [color=red]title="list"[/color]>
    <book>
         <name>xml and asp</name>
         <price>45.00</price>
         <publisher>tsinghua </publisher>
    </book>
</books>



[color=red][b]8、特殊标记[/b][/color]
XML中,< > " ' &特殊标记时,应当用< > &quotl ' &表示
<?xml version="1.0"?>
<books height="6'5'">
   <book  width="6"5"">
<name>list &lisongtao</name>
<author>lisongtao < [email]list@263.net[/email]></author>
   </book>
</books>



[color=red][b]9、中文标记[/b][/color]
汗。。。。又一个XLTXLM性的自恋狂。。
虽然XML支持中文标签,但不建议使用。
<?xml version="1.0" encoding="[color=black]g[/color]b2312"?>
<好人 >  
   <name>小鞋子</name>
</好人>



[color=red][b]10、DTD数据格式[/b][/color]
你可以暂且把DTD看作一种规则,它保证xml按照这些规则来定义数据格式。

1.DTD
=====================
<?xml version="1.0"?>
<!ELEMENT book (price,name)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT price (#PCDATA)>
[color=red]查资料:如果同一节点含有多个字节点,应该如何定义了?[/color]
=====================
DTD.XML
==================
<?xml version="1.0"?>
[color=red]<!DOCTYPE book SYSTEM "1.dtd">[/color]
<book>
     <name>lisongtao</name>
 <price>11.2</price>
</book>



[color=red][b]11、DTD直接写在XML里面[/b][/color]

<?xml version="1.0"?>
[color=red]<!DOCTYPE book [
<!ELEMENT book (price,name)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT price (#PCDATA)>
]>[/color]
<book>
<price>11.2</price>
<name>lisongtao</name>
</book>



[color=red][b]12、节点的多属性[/b][/color]
<?xml version="1.0" encoding="[color=black]g[/color]b2312"?>
<books>
    <book [color=red]name=" xml应用" author="list1" price="55.00"[/color]>
</book>
</books>



[color=red][b]13、结束标记另一种方法[/b][/color]
不推荐。。。
<?xml version="1.0" encoding="[color=black]g[/color]b2312"?>
<books>
    <book name=" xml应用" author="list1" price="55.00"[color]/[/color]>
</books>



[color=red][b]14、直接显示包含特殊字符[/b][/color]
前面我们看到了,< > " ' &等特殊字符须手动修改后才能显示,如果大量了?。。。就用CDATA

<?xml version="1.0" encoding="[color=red]g[/color]b2312"?>
<books>

[color=red]<![CDATA[
<book>
        <name>xml应用</name>
<author>list1</author>
        <price>55.00</price>
</book>
]]>[/color]
    <book>
        <name>xml应用</name>
<author>list1</author>
        <price>55.00</price>
</book>
</books>



[color=red][b]15、小结,一个完整的XML[/b][/color]
<?xml version="1.0" encoding="[color=black]g[/color]b2312"?>
<!--这是一个学生选课系统的所有数据-->
<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>

[color=red][b]16、CSS样式定义节点[/b][/color]
<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="1.css"?>
[color=red]<books>[/color]
   [color=blue]<book>[/color]
      <author>lisongtao</author>
      <name>the application of ASP</name>
   [color=blue]</book>[/color]
[color=red]</books>[/color]
---------------------------------------------------------
1.css        
-----------------------------------------------------------
[color=red]books
{
   display:block;
}[/color]
[color=blue]book
{
   display:block;
   background-color:#aabbcc
}[/color]

---------------------------------------------
心得:以上的定义方法和重定义HTML的标签样式一样,如对CSS不熟者,推荐用DW生成后再对应一下效果.很易就可以学会的.

 

[color=red][b]17、样式类定义XML[/b][/color]
<?xml version="1.0" standalone="yes"?>
<?xml-stylesheet type="text/css" href="3.css"?>
<list [color=red]class="listclass"[/color]>
    <sublist [color=red]class="listsmall"[/color]>lisongtao</sublist>
    <sublist>zhongguo</sublist>
</list>
----------------------------------------------------------
3.css
.listclass {color: red; font-size:26pt}
.listsmall {color:blue; font-size:15pt}

 

[color=red][b]18、类的ID定义XML[/b][/color]
<?xml version="1.0" standalone="yes"?>
<?xml-stylesheet type="text/css" href="ID.css"?>
<school>
      <class [color=red]id="list"[/color]>lisongtao</class>
      <monitor [color=red]id="list1"[/color]>lisongtao</monitor>
</school>
---------------------------------
ID.CSS
--------------------------------------------------
#list {font-size:28pt; color:red; display: block}
#list1 {font-size:14pt; color:blue display: block }

 

[color=red][b]19、XML中直接使用CSS[/b][/color]
<?xml version="1.0" standalone="yes"?>
<?xml-stylesheet type="text/css" href="sevil.txt"?>
<!--这句一定要有,而SEVIL.TXT可以换别的名字,不过中文好像这里不行.-->
<FOO [color=red]STYLE="font-weight: bold;color:red"[/color]>
Hello XML!  
</FOO>

 

[color=red][b]20、在一个样式表中合并引用另一个样式表的方法[/b][/color]
@import url("sevil.css");

 

[color=red][b]21、用CSS定制个节点的块状显示[/b][/color]
XML.XML
--------------------------------------------------------------------------------
<?xml version="1.0" encoding="[color=black]g[/color]b2312"?>
<?xml-stylesheet type="text/css" href="CSS.css"?>
<books xmlns:HTML="http://www.w3.org/Profiles/XHTML-transitional">
[color=red]<HTML:style>
    books
    {
     display:block;
     width:30em;
    }
  </HTML:style>[/color]
   <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;
    }

 


[color=red][b]22、在同一个XML文件内引用多个CSS样式表的方法[/b][/color]
<?xml version="1.0" standalone="yes"?>
<?xml-stylesheet type="text/css" href="1.css"?>
<?xml-stylesheet type="text/css" href="2.css"?>

 

[color=red][b]23、在XML中使用HTML标记的方法,例插入图片[/b][/color]
<?xml version="1.0" encoding="[color=black]g[/color]b2312"?>
<?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>
         [color=red]<HTML:img src="suzh1.jpg" [b]/[/b]>[/color]
   </book>
</books>

 

[color=red][b]24、在XML中使用HTML标记的方法(2),使用超连接[/b][/color]
<?xml version="1.0" encoding="[color=black]g[/color]b2312"?>
<?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>

 

[color=red][b]25、在XML中使用HTML标记(3),使用<BR><p>等标记
[/b][/color]
<?xml version="1.0" encoding="[color=black]g[/color]b2312"?>
<?xml-stylesheet type="text/css"?>
<books xmlns:HTML="http://www.w3.org/Profiles/XHTML-transitional">
   <book>
         [color=red]<HTML:P>[/color]
         <author>list </author>
         [color=red]</HTML:P>[/color]
         <name> ASP及其应用</name>
         <publisher>Tsinghua University</publisher>
         [color=red]<HTML:br/>[/color]
         <price>12.30</price>
   </book>
</books>

 

[color=red][b]26、在XML中使用HTML标记的方法(4),使用表格标签[/b][/color]
<?xml version="1.0" encoding="[color=black]g[/color]b2312"?>
<?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>

 

[color=red][b]27、在XML中使用HTML标记的方法(5),使用表单[/b][/color]
汗。。。。这样子就没意思了,仅供参考

<?xml version="1.0" encoding="[color=black]g[/color]b2312"?>
<?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>

 

[color=red][b]28、在XML中使用HTML标记的方法(6),使用JS脚本[/b][/color]
<?xml version="1.0" encoding="[color=black]g[/color]b2312"?>
<?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();
  [color=red]SampleID.src = "suzh1.jpg";[/color]
  SampleID.filters.revealTrans.Play()
}
                else
{
  fRunning = 0
  SampleID.filters.revealTrans.Apply();
  [color=red]SampleID.src = "suzh2.jpg";[/color]
  SampleID.filters.revealTrans.Play()
}


}
</HTML:SCRIPT>
<HTML:IMG id="SampleID" src="suzh2.jpg" width="200" height="200" style="filter:revealTrans(duration=3)" onclick="startTrans()" />
<HTML:BR />
Click image for Transition Filter: Blend
</books>

 

[color=red][b]29、总结CSS/HTML:[/b][/color]
其实在XML里面调用CSS来显示统一的样式很简单,主要通过一个
<?xml-stylesheet type="text/css" href="1.css"?>
这样的方法来联系起来.最好能先学学CSS的语法这样对大家很有好处.如果不太会的话,也可以用DW来自动生成CSS样式表后再联起来.呵.

致于调用HTML标记可以用<HTML:标记>这样的方法来实现.但一定要注意记他合乎XML的规则就行了.

  http://www.phpx.com/thread-68747-1-1.html

posted @ 2012-11-19 16:45  KIWI BIRD  阅读(237)  评论(0编辑  收藏  举报