下面是个简单易学的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
来源:http://www.tulaoshi.com/n/20160219/1608046.html