XML 技术指南(3)

2016-02-19 14:49 4 1 收藏

下面是个简单易学的XML 技术指南(3)教程,图老师小编详细图解介绍包你轻松学会,喜欢的朋友赶紧get起来吧!

【 tulaoshi.com - Web开发 】

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 

举个例子说,假如你想找到所有的lowfat hamburger price元素。为了用标准的DOM API来完成这一切,你必须通过手工地书写代码遍历整颗树来找寻符合条件的元素(在本例中,条件是指在hanburger元素中lowfat=yes的price元素)。再看另一个例子,假设你想将所用的hamburger元素和相关的数据转换为简单的HTML表格以供用户交互使用。使用标准的DOM API,你得手工遍历整棵树来获得HTML表格中所需的数据。

  我为了标准化及简化人们完成这些任务所需做的工作,W3C推荐使用XSL(Extensible Stylesheet Language)和一种叫做XSL Patterns的简单查询语言。

  XSL Patterns

  一个模式就是一个字符串,通过它来选取XML树中的节点。这样的选取取决于模式所关连的当前节点。元素的名字是最简单的模式,这个模式选取了当前节点所有具有该名字的子节点。例如,hamburger模式选取了当前节点的所有hamburger子节点。

  模式的语法非常完备。它允许你标识某个指定元素在文档中所处的上下文(例如,price元素在hamburger元素之中),同时它还提供了强大的筛选句法,使得我们可以标识出符合给定条件的节点(例如,lowfat=yes)。为了找出一个hamburgers元素中的所有lowfat hamburger price元素,你可以使用以下的模式字符串:

   /hamburgers/hamburger[@lowfat="yes"]/price  

  当某个模式被应用于给定的节点时,它仅返回符合指定模式的节点列表。这大大简化了开发者的操作,不再需要遍历整棵树。

  MSXML 2.0对模式语法的支持和Extensible Stylesheet Language (December 18th Working Draft)中2.6节的定义是相同的。MSXML 2.0中的IXMLDOMNode接口提供了两个方法,SelectNodes和SelectSingleNode。这两个方法都以一个模式串为参数。例如,下面的一行代码将返回满足条件的所有price节点。

  Set nodeList = rootNode.selectNodes("hamburger[@lowfat="yes"]/price")

  XSL

  XSL模式可以帮助我们标识一篇给定XML文档中的某些节点,但对这些节点的操作最终还是有赖于开发者来完成。XSL可以帮助我们简化完成通常XML任务的过程:将XML节点从一种格式转化到另一种格式。这种对格式转化的需求起源于Web开发者需要将他们的XML数据转化为HTML数据以供用户浏览。

  实际上,XSL所能做得远比以上描述多得多。XSL能够有效的定义从一种XML格式到另一种XML格式之间的转换,这极大的增强了互操作性。假如某个人向你的系统发送了一篇XML文档,而你的系统不认识它所采用的XML词汇,你只要进行一次简单的XSL转换就可以得到自己熟悉的词汇。正是由于XML这种简单的特点,开发者才不用为了描述某种类型的数据而采用通用的词汇。

  一个XSL文件中包含了一系列定义转换规则的声明模板。每一个模板都明确定义了怎样将源文档中的指定节点转换为输出文档中的节点(或其它类型的数据)的方法。你可以使用XSL模式来决定一个模板应用于一篇文档中的那些部分。

  作为一个示例,下面转换hamburger XML文件:

?xml version="1.0"?
hamburgers
 hamburger lowfat="dream on"
  nameCowBurger/name
  descriptionGreasy and good./description
  price2.99/price
 /hamburger
/hamburgers


  转换到HTML文件:

html
body
 h1hamburgers/h1
 ol
  liCowBurger, $2.99, Greasy and good./li
 /ol
/body
/html


  你使用的XSL文件如下:

?xml version="1.0"?
xsl:stylesheet xmlns:xsl=" http://www.w3.org/TR/WD-xsl "
xsl:template match="/"
html
body
 h1hamburgers/h1
 xsl:for-each select="hamburgers[@lowfat="dream on"]
  lixsl:value-of select="name"/, xsl:value-of select="price"/,
  xsl:value-of select="description"//li
 /xsl:for-each
/body
/html
/xsl:template
/xsl:stylesheet


  注意到了吗,我们是怎样在不同XSL元素的match和select属性中使用XSL模式来标识元素集的?在xsl:template标签中定义了一组节点的转换规则。XSL使用了一套标准的XML词汇来定义转换的过程,是不是很有趣呢?

链接技术

  很多人都认为,HTML真正强劲的地方在于它的锚元素。

  A HREF = "http://www.someserver.c

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)om"some link/A

  锚元素使开发者可以建立从一个HTML页面到另一个页面的链接,定义两个文档之间的关系。这给用户提供了一种从当前页面中获取更多相关数据的途径。同时,这也是用户在查询数据中所使用的典型方法。为了查找数据,他们浏览某一页面,同时他们在这篇该页面中可能会发现更符合他们要求的内容。而这些内容通过一个链接,存放在不同的页面上。

  整个Web就是基于这样一个在不同的数据文件之间建立关系(链接)的基石上的。随着IT行业不断的向前发展,我们自然会想到用类似的机制来描述不同XML文档或是相同文档中不同元素之间的联系。

  XLink

  XML Linking 1.0 (XLink)是W3C主导的定义XML链接的语法。根据XLink 1.0文档的要求,一个XML链接,或XLink的描述信息,显式的指定了资源或部分资源之间的关系。在XLink中,我们并不涉及标示不同类型数据位置的方法(例如URIs、XPointers和图形坐标)。

  这里是一个XML连接的简单例子:

hamburger xml:link="simple" HREF =
  "http://fastfood.org/hamburger.asp"
/hamburger


  XPointer

  在前面的章节中你已经读到,XLink需要依靠不同的机制来标识你想要链接的资源(例如统一资源标识符)。W3C推出了另一种叫做XPointer的机制用于构造XML文档的内部结构。具体地说,它决定了一篇XML文档中的元素、字符串或其它部分是否具有某个具体的标识。

  一个XPointer包括一系列描述位置的术语,它们中的任何一个都指定了一个特定的位置信息,通常这样的位置信息总是和前一个术语所指定的位置信息相关联。每一个位置术语都有一个关键字(例如id,child,ancestor等等)和若干变量,诸如实例的序列号、元素类型或属性。看下面的例子:

  child(2,hamburger)

  指的是第二个类型为hamburger的元素。




  其他XML相关的技术和词汇

  目前为止我们所谈到的已经代表了XML的核心技术。可能你觉得这些东西已经足够了,但如果我们不深入下去对眼下一些正流行起来的XML相关技术和词汇作一些介绍的话,这篇文章探讨XML的文章就显得不是很完整了。目前,这些新技术正在W3C的开发小组的努力下一步步走向成熟。

  MathML(Mathematical Markup Language)

  MathML是一种用来描述数学符号、纪录其结构和内容的XML应用。MathML的目标是在Web上实现能像HTML处理文本一样,处理数学问题。下面是由W3C提供的的MathML例子。数学方程:

   x2 + 4x + 4 =0

  在MathML中可以用以下的XML词汇表示:

apply
 plus/
 apply
  power/
  cix/ci
  cn2/cn
 /apply
 apply
  times/
  cn4/cn
  cix/ci
 /apply
 cn4/cn
/apply


  SMIL

  SMIL(Synchronized Multimedia Integration Language,它的发音和"smile"一样)是一种基于XML的表述多媒体演示的语言。SMIL允许将一组独立的多媒体对象整合为一个多媒体演示。作为另一种行业趋势,HTML+TIME依靠SMIL功能在你的HTML页面中加入多媒体"时间"特性。现在IE 5提供了一个HTML+TIME的实现。下面例子中的页面中包含了一个时间序列。位于时间段中的每一个P元素会等到前一个P元素消失后再出现。

来源:https://www.tulaoshi.com/n/20160219/1608046.html

延伸阅读
XML文档可以包含外文字符比如挪威语或者法语(中文当然也可以!这一部分还是不能照原文翻译,下面有些内容是我自己写的)为了让你的解析器能够明白这些字符,你必须在XML文档中统一的字符编码标准。Windows 95/98 记事本 Windows 95/98 记事本不能以Unicode的编码格式保存文件。 可以使用记事本来编辑和保存包含了外文字符的XML文档 (比如:挪...
标签: Web开发
应用与开发 编者按:XML(eXtensible Markup Language,可扩展置标语言)是由W3C(World Wide Web Consortium,互联网联合组织)于1998年2月发布的一种标准,同HTML一样是SGML(Standard Generalized Markup Language,标准通用置标语言)的一个简化子集。由于它将SGML的丰富功能与HTML的易用性结合到了Web的应用中,自推出以来,迅速得到软...
标签: Web开发
在XML文档中的所有文本都会被解析器解析。 只有在CDATA部件之内的文本会被解析器忽略。 解析数据 XML 解析器通常情况下会处理XML文档中的所有文本。 当XML元素被解析的时候,XML元素内部的文本也会被解析: messageThis text is also parsed/message XML解析器这样做的原因是XML元素内部可能还包含了别的元素,象下面的...
标签: Web开发
符合语法的XML文档称为结构良好的XML文档。 通过DTD验证的XML文档称为有效的XML文档。 "结构良好的" XML文档 一个结构良好的XML文档应该使用正确的语法。 一个结构良好的XML文档应该遵守XML语法规则,前面一章给出的例子就是一个结构良好的XML文档: ?xml version="1.0" encoding="ISO-8859-1&q...
标签: Web开发
XML可以用来描述数据,重点是‘数据是什么’。 HTML则是用来显示数据,重点是‘如何显示数据’。 在学习XML之前你应该已经知道的知识 在你继续之前你应该具有下面一些基础的知识: WWW, HTML 和设计网页的基础知识 网页脚本语言,比如JavaScript 或者VBScript 你最好在学习XML之前就了...

经验教程

719

收藏

31
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部