叶子网络bbs论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 17250|回复: 5
打印 上一主题 下一主题

XML

[复制链接]

0

主题

3

帖子

8

积分

超级版主

Rank: 8Rank: 8

积分
8
跳转到指定楼层
楼主
发表于 2014-11-13 09:10:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
firstChild 头一个子节点
lastChild   最后一个子节点
childNodes  子节点集合
parentNode    父节点
hasChildNodes()    判断是否拥有子节点
nextSibling     相邻的下一个节点
previousSibling   相邻的上一个节点

nodeType   节点类型
getAttribute    读取属性值
setAttribute    添加属性

nextnode  取得下一个节点

NodeIterator  节点迭代器,是遍历DOM树的辅助工具,用它可以对DOM树进行深度优先的搜索。
回复

使用道具 举报

0

主题

3

帖子

8

积分

超级版主

Rank: 8Rank: 8

积分
8
沙发
 楼主| 发表于 2014-11-13 09:15:39 | 只看该作者
可扩展标记语言XML(eXtensible Markup Language)是一种简单灵活的文本格式的可扩展标记语言,起源于SGML(Standard Generalized Markup Language),是SGML的一个子集合,也就是SGML的一个简化版本,非常适合于在Web上或者其它多种数据源间进行数据的交换。
定义:用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。
用途:
可扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 XML是标准通用标记语言 (SGML) 的子集,非常适合 Web 传输。XML 提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。
回复

使用道具 举报

0

主题

3

帖子

8

积分

超级版主

Rank: 8Rank: 8

积分
8
板凳
 楼主| 发表于 2014-11-13 09:19:45 | 只看该作者

    XML节点是什么呢?当我们在处理XML文件的时候必须要明白XML节点的概念,那么从这里的讲述,你将会了解XML节点对于XML文件的意义,希望对你有所帮助。


    在我们学习LINQ删除XML节点之前我们先来看看什么是XML节点,那么下面就向你详细介绍下关于XML节点的学习体会。希望对你了解和学习XML节点有所帮助。
    对于XML节点的认识:
    就像一个树状的目录。可以把第一行当作它扎根的“土地”。XML文件是由节点构成的。它的第一个节点为“根节点”。一个XML文件必须有且只能有一个根节点,其他节点都必须是它的子节点。我们在FLASH里使用XML对象解析XML的时候,this 代表整个XML文件,它的根节点就是 this.firstChild 。 this.firstChild.childNodes 则返回由根节点的所有子节点组成的节点数组。

    每个子节点又可以有自己的子节点。节点编号由0开始,根节点的第一个子节点为 this.firstChild.childNodes[0],它的子节点数组就是this.firstChild.childNodes[0].childNodes 。

    对于XML节点的探究:
    继续深入到没有子节点的单一节点,比如根节点第一个子节点的第二个子节点 this.firstChild.childNodes[0].childNodes[1],它返回的是一个XML对象(Object) 。这里需要特别注意,节点标签之间的数据本身也视为一个节点 this.firstChild.childNodes[0].childNodes[1].firstChild ,而不是一个值。

    我们解析XML的最终目的当然就是获得数据的值:this.firstChild.childNodes[0].childNodes[1].firstChild.nodeValue 。注意!不是 this.firstChild.childNodes[0].childNodes[1].nodeValue !节点名称有时也是我们需要的数据: this.firstChild.childNodes[0].childNodes[1].nodeName 。注意比较获得节点名称和节点值的不同。

    除了作为子节点,数据还可以作为节点属性。节点属性写在节点标签内部:<节点 属性1="属性值" 属性2="属性值"...... >节点值 。如果数据全作为属性而没有节点值,则可以写成 <节点 属性="属性值" /> 的形式,而不用写成 <节点 属性="属性值"> 。 注意节点必须关闭,写成 <节点 属性="属性值"> 就不对了。
    节点的所有属性返回一个通用对象(Object),比如根节点第六个子节点的第三个子节点的所有属性为: this.firstChild.childNodes[5].childNodes[2].attributes 。 获得其中的“地址”属性: this.firstChild.childNodes[5].childNodes[2].attributes.地址 。

    比较而言,数据作为属性的方式更好。因为文件相对比较小,而且避免深入更多层子节点,解析速度更快。
    下面以简历的 JobXMLModel类 (模型)看看在flash里具体的解析。 JobXMLModel类 继承XML类,首先在构造函数里设置 ignoreWhite 属性为true忽略XML文件中多余的空格。

回复

使用道具 举报

0

主题

3

帖子

8

积分

超级版主

Rank: 8Rank: 8

积分
8
地板
 楼主| 发表于 2014-11-13 09:22:27 | 只看该作者
添加一个子节点

这里介绍添加XML节点的方法。

       首先定义XML文件:(bookstore.xml)

       <?xml version="1.0" encoding="utf-8"?>

       <bookstore>

              <book genre="fantasy" ISBN="2-9088-1">

                     <title>Oberon's Legacy</title>

                    <author>Corets,Eva</author>

                    <price>20.8</price>

              </book>

      </bookstore>

       OK,这就是有一个简单节点的xml文件,它有一个根节点bookstore,其子节点为book,其中book有两个属性genre 和ISBN,每个book节点又三个子节点title,author 和price。

       下面给这个xml文件添加一个book子节点:

       1.引用XML名称空间: Imports System.xml  

       2.定义一个读取xml文件的方法,暂且这么说吧:

             Dim xmlDoc as New xmlDocument

             xmlDoc.Load("bookstore.xml")

        3.定义根结点,并找到根据节点名字找到根结点

            Dim root  as  XmlNode =xmlDoc.SelectSingleNode("bookstore")

         4.定义一级子节点,注意根结点与子节点的定义方式不同

           Dim xelement as XmlElement =xmlDoc.CreateElement("book")

           xelement.SetAttribute("genre","comedy")        //给一级子节点添加两个属性

           xelement.SetAttribute("ISBN","2-0875-3")

          5.定义二级子节点。节点的定义方式都是相同的,只是赋值的方式有所差别。这里需要定义三个二阶子节点

          Dim xesub1 as XmlElement =xmlDoc.CreateElement("title")

          xesub1.InnerText ="c#"       //给二级子节点赋值

          xelement.AppendChild(xesub1)        //将这个二阶子节点添加给一级子节点


          Dim xesub2 as XmlElement =xmlDoc.CreateElement("author")

          xesub2.InnerText ="rubby"

          xelement.AppendChild(xesub2)


           Dim xesub3 as XmlElement =xmlDoc.CreateElement("price")

           xesub3.InnerText ="20.8"

           xelement.AppendChild(xesub3)

         6.将子节点添加到根节点中去,并保存该xml文件

           root.AppendChild(xelement)

           xmlDoc.Save("bookstore.xml")

       好了,我们再打开xml文件就会发现,已经新添加了一个book子节点了


回复

使用道具 举报

0

主题

3

帖子

8

积分

超级版主

Rank: 8Rank: 8

积分
8
5#
 楼主| 发表于 2014-11-13 09:27:28 | 只看该作者
本帖最后由 rain 于 2014-11-13 09:29 编辑

和HTML对比之可扩展

相信对于XML而言更多的人比较熟悉HTML,随便打开一个网页然后右键查看源文件,那里面呈现的的就是为我们提供数据和样式的HTML代码。这篇文章就简要描述一下同样作为标记语言的HTML和XML他们之间的区别。

先从名字开始分析,之所以说XML是可扩展的标记语言相信通过下面两个例子读者就可以理解了。

HTML代码

  • <html>  
  • <pre name="code" class="html"><!--这是HTML文档--></pre><head><title>学习XML</title></head><body>你好,XML</body></html>  

XML代码

  • <?xml version="1.0" encoding="gb2312">  
  • <pre name="code" class="html"><!--这是XML文档--></pre><可扩展标记语言><题目>学习XML</题目><内容>你好,XML</内容></可扩展标记语言>  


上面的例子中可以看出HTML文档中的各种标记是已经规定好的一套标记,而XML文档中的标记是用户自己规定的,只要符合XML的规范(在后面的文章中将详细讲解)用户可以随便定义自己的标签。

前一篇文章中已经介绍了SGML是一种在Web发明之前就早已经存在的使用标记来描述文档资料的通用语言,而在Web中由于SGML的庞大人们开始使用XML代替SGML。但不可否认的是HTML和XML都是从SGML发展而来的标记语言。因此,他们有共同点,比如相似的语法和标记的使用。不过HTML是在SGML定义下的一个描述性的语言,只是SGML的一个应用,其DTD(关于DTD将在下一篇文章中详细讲述,这里读者只需要知道DTD和标记的数量有关系就行了)作为标准被固定下来。


HTML的标签是固定的所以很难用来定义新的应用。“XML的设计出发点就是取SGML的优点,去除其复杂的部分,使其保持轻巧,可以在Web上工作”----Tim Bray。所以说XML是SGML的一个简化版本,是SGML的一个子集,严格意义上说XML仍然是SGML,可以灵活的为其定义DTD。

也正是因为XML的可灵活扩展的特性才导致其在多个方面的应用。比如在Ajax当中XMLHttpResponse对象大多数情况下返回的就是XML,还有在JavaWeb开发当中配置文件大多数也是以XML的形式来存储,还有在EJB当中采用WEB方式远程调用时首先读取的也是XML(虽然是wsdl形式的文件,但其本质也是XML)等等。这些都是利用了XML可扩展能够有效的存储数据的这个特点。


回复

使用道具 举报

0

主题

3

帖子

8

积分

超级版主

Rank: 8Rank: 8

积分
8
6#
 楼主| 发表于 2014-11-13 09:36:42 | 只看该作者
用XML制作中文Web网页入门
XML(extensible Markup Language)是由SGML(Standard Generalized Markup Language)对应internet的需求定义的一种通用文档语言。由web技术标准化集团W3C(world Web Consortium)对其进行了标准化。它可以应用于计算机、数字化广播电视、通讯、电子出版等许多领域,有人称其为可以表现一切事物的"世界语"。目前以XML为基础已经出现了数十种应用规格。可以说XML是Web出现以来的一大发明。无论个人还是企业,各个领域都非常注视其发展和应用。微软的Internet Explorer5.0和Netscape对XML的支持,也给XML的普及起到了推进作用。由此,"想用XML制作Web 网页"的人一定会大大增加。但实际上应如何用XML制作Web 网页,用XML都能作什么事,恐怕现在的internet主页开发人员中对XML不甚了解的人不在少数。下面让我们来讨论一下用XML制作Web 网页的基本方法和有关XML的基础知识。
一. 一个最基本的XML文件例子

---- 简单的说,XML是比现在大家正在使用的HTML(Hyper Text Markup Language)更聪明的一种语言。如果了解HTML规则对制作XML的Web网页是很有帮助。首先,我们看一下最基本的XML文件, 表1列出了"红樱枫软件公司简介"这句话用于XML浏览器的XML代码。


      <?xml version="1.0" encoding="gb2312"?> (1) <Company>
      <简单介绍> 红樱枫软件公司简介</简单介绍>
      </Company>
      《表1》
---- 这里的< Company >和< 简单说明 >相当于HTML描述的web 网页中的< HTML > < HEAD > < TITLE > 或< H1 >等符号。但在XML中却用了自己定义的tag,因为在XML文件中是允许的。XML直接使用了< Company >和< 简单说明 >等tag,使数据的意思可以一目了然。所以自由定义Tag是XML的基本特征之一。
---- 我们再看一下表1的第(1)行,这里定义了XML的版本和所使用的文字集合,必须在version中指定XML的版本,在encoding中指定文字集合。在W3C的标准中推荐用Unicode(UTF-8 或UTF-16),此处我们指定了"gb2312"中文国标码。另外从上述的例子可以看出< 简单说明 >被包含在< Company >之中,相当于< Company >的子结构体。这种tag之间的关系,我们称之为树形结构,最上层的称之为根。表1有一个称为< Company >的根元素。当然如果设定根的话,就一定设有树枝和树叶。所以树形结构的XML文件一定要有一个根元素。这也是XML的一个基本特征。

---- 需要提请注意的是,在XML文件中结束tag不可以省略,若省略的话将出错。另外,属性值需用""(双引号)括起来。XML的元素属性值可以写成< Company 成立日期 ="97年2月" >红樱枫软件公司简介< /简单说明 >," 成立日期"是属性名," 97年2月"是属性值。但是同HTML明显不一样的部分是HTML可写成< Font Size=+1 >,省略双引号浏览器也可以正常显示。而在XML中属性值必须写成< FontSize="+1" >的形式。还有XML的英文tag必须区分文字大小写。注意以上几点, 将表1输入并用sample1.xml名字保存。



二.XML的文档类型定义DTD

---- 从上述介绍可以看出XML文件内容是以树形结构进行组织的。例如产品目录<公司名称>下面有<产品1>或<产品2>等产品种类,<产品1>的下面又有<规格><颜色>等。XML的这种树形结构是通过Tag的关系来表示的。tag的名字和树形构造用称为DTD(Document Tage Defimtion)的文档定义部分来描述。因此DTD也是XML文档的重要组成部分。

---- XML文档使用的DTD分为以下3种:内部DTD,外部DTD,混合DTD。

内部DTD:在XML文档内部说明的DTD。

外部DTD:XML文档通过外部解析实体引用的外部文件。

混合DTD:XML文档使用的内部DTD和外部DTD的组合体。
---- XML文档一般建议使用外部DTD或混合DTD,因为这样一个DTD就可以被多个文档调用,减少资源浪费。下面我们就为前面的例子sample1.xml书写一个外部DTD,存入sample1.dtd文件中。

      <?xml version="1.0" encoding="gb2312"?> 《表2》----sample1.dtd  
      
---- 表2就是这个外部DTD的全部内容,完成后只需在sample1.xml的第一行后插入文档类型声明就可以了(表3)。

      <?xml version="1.0" encoding="gb2312"?> <Company 成立日期="97年2月">
      <简单介绍> 红樱枫软件公司简介</简单介绍>
      </Company>
      《表3》----sample1.xml
---- 下面我们来分析一下DTD内容:
---- DTD是由标记声明,参数实体引用及开始和结束标记构成的,其中引用的参数实体也是先利用标记声明说明后才能使用,在此着重介绍一下标记声明。DTD的标记声明包括元素类型声明,元素属性声明,实体声明,条件节声明,注释声明,短缩参照声明等,下面就比较常用的几种分别进行介绍:

元素类型声明:是DTD的基本组成部分, 一个XML文档可以没有其他任何标记声明,但却不能没有元素类型声明。如sample1.dtd中的元素类型声明明确地描述了该XML文件的树型结构,即根元素"Company"有一个子元素"简单说明",而子元素"简单说明"是树叶元素,它只包含字符型数据,字符型数据也是XML文档的最基本成份,任何非空元素最后都将别分解为字符型数据。

属性声明: 属性声明也是DTD的重要组成部分,它可以使XML文档更加丰富多彩,比如可以通过定义密码属性限制网络管理员的级别,通过定义产品质量属性说明产品等级,更为甚者,可以通过定义ID,IDREF,IDREFS属性使复杂链接和可选扩展指针成为可能,在internet网上实现强大的链接功能等等。sample1.dtd中元素"简单说明"的属性就明确的阐述了公司的成立时间,其中"成立日期"是属性的名称,CDATA是属性的类型,表示属性是字符型数据,#REQUIRED是属性的缺省值,表示该属性是不能被省略的。

实体声明: 实体就类似于C语言中的宏,用起来既简单又明了,修改起来方便安全,而且它可以实现文档的链接,资源的共享,是生成高质量XML文档的必须成员。实体可以分为参数实体和通用实体,内部实体和外部实体,解析实体和非解析实体等,其中参数实体只能用于DTD中,而通用实体只能用于XML的文档部分,下面的例子中将会多处用到实体。
---- 需要说明的是,DTD中的tag和tag间关系虽说用户可以自己定义,但若定义了让人无法理解的tag和关系,则很难让更多的人应用。因为共用数据的接收方和发送方必须要用厢同的DTD。例如联机银行可以先用DTD定义<户头><余额>等tag,而用户则必须用能解释这些tag的应用程序对这些数据进行浏览或下载到帐目软件的数据库里。提供家电产品信息、以及构筑大规模企业间EC时,由于使用人数较多,一定要事先规定好"行业标准"的DTD。如销售网点若事先定义好了行业标准的DTD,则用户不仅可以从不同的销售点下载用XML记述的商品目录,而且可以作成综合的一览表。
---- 完成了DTD后,我们用IE5.01将sample1.xml文件打开。你会发现文件是以图2的形式把文件的树形结构的原码都显示出来了,这是因为只有DTD和XML文件的原因。但看到这个树形结构,你可以有一点安心的是它标志着文件中没有语法错或tag未关闭、以及拼写不统一等错误。

三. 浏览XML文件必须要有XSL

---- 要将XML文件象HTML的web 网页那样显示的话,还要用XSL对XML的显示格式进行定义。一个XML文件可以对应多个定义显示格式的XSL文件,多个XSL可事先放在服务器上。当有客户读取XML文件时,服务器根据客户终端的种类选择适当格式的XSL文件传送到客户端。这点对于数字电视、携带终端等非常方便的。服务器还可以判断浏览器的种类和版本,当确认不支持XML时,可以将其转换为HTML格式送到客户端。

---- 下面我们讲述一下XSL文件。这里我们暂且定义XSL的文件名为sample1.xsl。确定了文件名,我们再在表3的XML文件中追加与XSL有关的代码。请在表3的第二行如表4所示进行追加。herf值是定义相关的XSL文件名,生成sample2.xml文件。这种写法是使用XSL时的规则。


      <?xml version="1.0" encoding="gb2312"?>  
      <?xml:stylesheet type="text/xsl"  
      href="sample1.xsl"?> <Company 成立日期="97年2月">
      <简单介绍> 红樱枫软件公司简介 </简单介绍>
      </Company>
      《表4》----sample2.xml
---- 下面我们制作一个XSL文件。请参考表5,它是与表1对应的XSL代码。与XML文件一样,XSL文件中也要有XML的版本定义和文字集合定义。这里的文字集合定义应与XML文件中定义相同。若不同的话,将不能正确显示。表5第二行xsl:stylesheet是xsl的根元素。用xmlns:xsl="URL"定义了名字空间。URL表示是http://www.w3.org/TR/WD-xsl的地址。请记住这个规定。
---- 在XSL文件中还有一组 ,由此看出XSL必须以 结束。这些都是XSL的书写规则。

---- 下面具体介绍一下XSL规则的记述方法。

---- 首先,要决定对应XML树的什么元素、以及设定什么样的规则。这里使用了 的match属性。即用 来描述。"/"是根的意思,指定表4的 元素。在 以后用HTML来描述用web网页显示< Company >元素的规则。


      <?xml version="1.0" encoding="gb2312" ?> <xsl:stylesheet xmlns:
xsl="http://www.w3.org/TR/WD-xsl">
      <xsl:template match="/">
      <xsl:value-of select=
"Company/简单介绍"/>
      <xsl:apply-templates select="Company"/>
      </xsl:template>
      <xsl:template match="Company">
      <h1><xsl:value-of select="简单介绍"/>
      </h1>
      </xsl:template>
      </xsl:stylesheet>
      《表5》----sample1.xsl
---- 在浏览器的标题栏中显示标题时,HTML是使用< title >来定义的,在XSL中用< xsl:value-of select=" Company /简单介绍"/ >的方法来定义。用select属性指定的XML代码中的元素(这里为<简单介绍>的内容)将被显示到标题条中。在< body >< /body >中用< xsl:applytemplate >的select属性来指定"Company",表示web 网页中将显示"Company"的内容。定义了< Company >后,怎样才能显示出<简单介绍>的内容呢?首先用< xsl:template match="Company" >< /xsl:template >来设定全体规,下面再用< h1 >< xsl:value-of select="column名"/ >< /h1 >定义要显示的内容。
---- 至此我们就完成了一个XSL文件的制作。将表5用sample1.xls保存。再用IE5.01显示表3的sample1.xml文件,就会像图3一样,显示出所要的内容。

---- 经过前面的介绍读者对用XML制作web网页一定有了大致的概念了,即,要想以web网页的形式显示XML文件的话,要分别制作XML,DTD和XSL文件,并且一定要在XML文件中定义它们之间的关系。读者可能会问"为什么用HTML一个文件就够了,而显示XML,需要用许多功夫来制作DTD和XSL呢?"其实,正是这些文件给web网页制作带来了很大的方便,下面介绍一点XML灵活应用的知识。



四.一个XML可对应多个XSL格式文件

---- 如前面所述一个XML文件可以对应多个不同的XSL文件而得到不同的显示结果。下面我们制作一个用2种不同的XSL显示XML的例子。请看图4,这是用XML制作的"产品简介"的web 网页。从web画面上看,你可能会觉得同HTML制作的web 网页没有什么区别。实际上这里用了许多XML的技术,这里显示的是具有图5构造的树结构的(如表6所示)XML数据。并且用表7的XSL代码定义了显示在web 网页上的格式。表7的开始部分也定义了XML版本,文字集合和名字空间。在表7的第十行用HTML的< Table >描述了一个表组,若是HTML文件,则显示数据应直接放在HTML文件中,当《产品简介》的数据增加时,必须重写HTML文件。而在XML文件中,显示数据和显示格式是分别放在XML和XSL文件中的,因此格式部分就没有必要重写。

---- 象上述表组这种相同构造的数据要重复显示时,可以把想重复的内容(此处为< 产品 >)指定在< xsl:for-each >的select属性里(表7第22行)。

---- 还有一点是对图像文件的处理,《产品简介》中用图像来表示产品名称,文件中图像同产品一样也在变化。这里在< img >中用< xsl:attribute >的name为"src"属性对图像进行定义,并用< xsl:value-of >记述从XML文件取数据的位置。



---- 《表6》----Cproductxsl.xml

---- 下面看一下表6的XML文件用不同XSL来描述的结果。表8给出了只显示"序号""图标""功能简介"的XSL代码。图6为此XSL定义后的XML显示结果。相同的XML文件,显示结果与图4完全不同。这种相同的XML文件对应不同的XSL文件的方法。在电子商务及公司内部的web网页的应用都是非常有利的。例如:用相同的XML文件可以根据各部门不同的需要而改变要显示的内容。这是XML和HTML的一个很大的不同点。

---- 《表7》

五.XML数据的排序

---- XML中的数据可以按需要排序。例如表7的< xsl:for-each select="主要产品/产品" >部分改写成< xsl:for-each select="主要产品/产品" order-by="-number(序号)" >。只需追加order-by属性即可实现排序。在此例中被"产品"所包含的子元素"序号"的值作为关键字降序排序。order-by的值-(负号)为降序+(加号)为升序排序(图7)。number表示"序号"不是文字串而是数值。是否使用number是根据值作为文字串处理还是作为数据处理而定。若将数值做为文字串处理的话,有可能不能很好的排序。



六.用script操作数据

---- XML文件中的数据可以象处理数据库文件那样操作,对必要的数据检索,抽出和显示等。对用HTML做的web网页追加数据时,一定要由服务器来处理。而在XML中插入用VBScript,JAVAScript或Jscript等语言的话,有些时在客户端即可以完成处理。

---- 这里介绍一下用插入VBScript对XML数据进行抽出显示的方法。首先将XML中"产品"的Web网页品名显示出来。点击任意品名即可显示此产品的功能介绍(图8)。使用的文件见表6的XML文件以及新的XSL文件。在此,XSL文件中用Script实现抽出功能。 Script在XSL文件中的< head >< /head >中的如下描述


      < script type="text/vbscript" > < xsl:comment > <  
      :[CDATA[ 此写入script ]] > < /xsl:comment > < /script >
---- 具体代码见表9,此处简单介绍一下表9中的document.XMLDocument.getElementsByTagName ("元素名")部分。作为操作XML数据的接口使用了W3C推荐的DOM(Document Object Model)技术。document.XMLDocument部分表示XML文件对象,getElementByTagName的表示取出"元素名"中存贮的值。也就是从XML文件中取出"品名"元素的值。通过Length属性来确认取出的值在XML中存在个数,通过hiNodelength返回"品名"元素个数,用text属性表示取得值。"功能介绍"元素的值也用相同的方法取得,表9只列出了XSL的script部分。

---- 《表9》



七. 修饰XML文件的CSS

---- 有了DTD,XSL的XML文件还不算完美,要使Web网页更加美观,还需要CSS(Cascading Style Sheet)。XSL用来设定Web网页的格式,CSS用来设定网页中文字信息如字体,相色,背景图形颜色等。

---- CSS有3种描述方法:

---- 1. 用元素的Style属性定义格式; 2.在< head >< /head >中描述; 3.以外部文件形式链接。下面简单介绍一下第2种方法。

---- 在表7的xsl文件的< head >< /head >内添加以下内容(表10)生成CProduct_css.xls文件。


      《表10》
---- 此方法是在XSL文件的< head >< /head >内用 '< style type="text/css" >各种格式设定< /style >' 来描述XML文件中文字及背景格式。此例中,表格里caption的文字颜色为红色;th的背景色为白色,文字色为紫色;td的背景为一幅图pa.jpg从左边界到右边界填充,文字颜色为蓝色,如图10所示。
八.对不同的DTD进行翻译的XSLT

---- XSL中有一个称为XSLT(XSL Transformation)的应用规范,用来转换不同DTD对应的XML树形结构和tag名字。即用于将一个以特定DTD为基础生成的XML文件转换成可以对应另外DTD的XML文件。使你的XML文件能用于支持不同DTD的应用软件和终端之间进行数据交换。

---- 各企业可以根据自身情况制定行业标准化DTD。虽说制定DTD时一定要考虑通用性,以减少将来同其他企业进行数据交换时产生不必要的麻烦。但即使是相同行业,企业不同DTD也会有差异,这些差异的对应关系可以用XSLT文件描述。使你即便收到了使用不同DTD的XML文件也可以将其转换成自己的格式。也就是说,即使使用了以自己独特形式定义的DTD生成的XML数据。在形成行业标准之后,用XSLT可以将自己的数据进行改造共用。

---- 至此,我们已经学习了制作简单的XML文件,以及有关XML的知识,XML是否给您留下了深刻的印象呢?随着对XML了解程度的加深,XML强大的功能,简便的制作,美观的网页会将您带入一个丰富多彩的网上世界!

注释:

---- *A。图5中各图标的意义如下:

---- 表示有子元素的根元素或树枝元素
---- 表示任意类型元素(ANY)
---- 表示不含任何元素的树叶元素(#PCDATA)
---- 表示不含任何数据的空元素(EMPTY)
---- 表示元素的属性
回复

使用道具 举报

手机版|Archiver|叶子官网|杭州轩翼网络科技有限公司 ( 浙ICP备17027999号

GMT+8, 2024-4-23 16:03 , Processed in 0.256155 second(s), 23 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表