科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道应用软件 学习xml的简明教程

学习xml的简明教程

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

XML Explorer是一个XML和schema编辑器。它简单易用,可以展现多个窗口。可从树状图、列表、表格、 文字模式和跳出式编辑区等方式操作任何XML资料。

作者:wohugb 来源:CSDN 2008年5月25日

关键字: 教程 XML python 软件

  • 评论
  • 分享微博
  • 分享邮件
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中,< > " ' &特殊标记时,应当用&lt; &gt; "l &apos; &表示
<?xml version="1.0"?>
<books height="6&apos;5&apos;">
   <book  width="6"5"">
<name>list &lisongtao</name>
<author>lisongtao &lt; list@263.net&gt;</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)" onclick="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>
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章