·首页 ·asp ·.net ·php ·JSP ·CGI ·数据库 ·网页设计 ·网管专栏 ·XML ·工具软件 ·办公软件 ·操作系统 ·程序设计 ·LINUX 
  当前位置: 普克>>计算机教程>>XML>>XML基础>>存取XML的属性
flash视频教学

photoshop专题

asp.net专题

office专题

存取XML的属性


XML基础 发表时间:2006-4-8 字体:  返回

  

作者:未知  
 XSL 将属性视为属于XML 文件中的一个元素,好像是XML 文件中的子元素。然而,要在XSL样本中读取属性,你必须在属性名称前加上字符@,作为属性名称与元素名称的识别。
    例如,在下列起始标签中的筛选运算子从所有BOOK 元素,筛选出属性InStock 的属性值为「yes」的BOOK 元素。换句话说,筛选运算子筛选出有库存的书籍:
<xsl:for-each select="INVENTORY/BOOK [@InStock='yes']">
    你可以使用XSL 元素value-of,如同使用它来撷取元素的文字内容的方式一般,来撷取任何属性的属性值。例如下列所示,value-of 元素得到AUTHOR 元素中Born 属性的属性值:
<xsl:value-of select="AUTHOR/@Born"/>
    在列表10-8 中的样式表,示范了存取XML 文件中元素属性值的技巧。这份样式表被连结到列表10-9 中的XML 文件,并显示书籍清单中所有库存有的书籍。(你可以在随书光盘的 XslDemo06.xsl 和 XslDemo06.xml 档案中找到。)
XslDemo06.xsl
<?xml version="1.0"?>
<!--File Name:XslDemo06.xsl -->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<H2>Books In Stock</H2>
<TABLE BORDER="1" CELLPADDING="5">
<THEAD>
<TH>Title</TH>
<TH>Author</TH>
<TH>Binding Type</TH>
<TH>Number of Pages</TH>
<TH>Price</TH>
</THEAD>
<xsl:for-each select="INVENTORY/BOOK
[@InStock='yes']">
<TR ALIGN="CENTER">
<TD>
<xsl:value-of
select="TITLE"/>
</TD>
<TD>
<xsl:value-of
select="AUTHOR"/><BR/>
(born <xsl:value-of
select="AUTHOR/@Born"/>)
</TD>
<TD>
<xsl:value-of
select="BINDING"/>
</TD>
<TD>
<xsl:value-of
select="PAGES"/>
</TD>
<TD>
<xsl:value-of
select="PRICE"/>
</TD>
</TR>
</xsl:for-each>
</TABLE>
</xsl:template>
</xsl:stylesheet>

XslDemo06.xml
<?xml version="1.0"?>
<!--File Name:XslDemo06.xml-->
<?xml-stylesheet type="text/xsl" href="XslDemo06.xsl"?>
<INVENTORY>
<BOOK InStock="yes">
<TITLE>The Adventures of Huckleberry Finn</TITLE>
<AUTHOR Born="1835">Mark Twain</AUTHOR>
<BINDING>mass market paperback</BINDING>
<PAGES>298</PAGES>
<PRICE>$5.49</PRICE>
</BOOK>
<BOOK InStock="no">
<TITLE>Leaves of Grass</TITLE>
<AUTHOR Born="1819">Walt Whitman</AUTHOR>
<BINDING>hardcover</BINDING>
<PAGES>462</PAGES>
<PRICE>$7.75</PRICE>
</BOOK>
<BOOK InStock="yes">
<TITLE>The Marble Faun</TITLE>
<AUTHOR Born="1804">Nathaniel Hawthorne</AUTHOR>
<BINDING>trade paperback</BINDING>
<PAGES>473</PAGES>
<PRICE>$10.95</PRICE>
</BOOK>
<BOOK InStock="yes">
<TITLE>Moby-Dick</TITLE>
<AUTHOR Born="1819">Herman Melville</AUTHOR>
<BINDING>hardcover</BINDING>
<PAGES>724</PAGES>
<PRICE>$9.95</PRICE>
</BOOK>
</INVENTORY>
    在XML 文件中的每个BOOK 元素,皆包含InStock 属性,藉由设定属性值为「yes」或「no」 来指定此书籍是否有库存。每个AUTHOR 元素使用Born 属性来指出作者的出生年份。
    样式表使用筛选运算子中的属性,来从样式表所显示的BOOK 元素集合中排除所有缺货的书籍,而不是显示属性InStock 的属性值:
<xsl:for-each select="INVENTORY/BOOK [@InStock='yes']">
<!--display each BOOK element-->
</xsl:for-each>
    此样式表将BOOK 元素显示于HTML 的表格中,而不是在先前范例的SPAN 元素中。它利用XSL 元素value-of 将Born 属性的属性值显示于AUTHOR 元素的值之后。下列的元素会建立显示这些属性值的表格:
<TD>
<xsl:value-of select="AUTHOR"/><BR/>
(born <xsl:value-of select="AUTHOR/@Born"/>)
</TD>
    下图为Internet Explorer 5 显示此文件的情形:



上一篇:编写结构完整的XML文档
下一篇:使用串接样式表(CSS)来显示XML文件

普克创业投资网刊载此文不代表同意其说法或描述,仅为提供更多信息。
在百度中搜索存取XML的属性的相关内容]   [在狗狗中搜索存取XML的属性的相关内容]
Copyright @ 2006 PUPK.COM 普克创业投资网 版权所有
 建议使用1024*768以达到最好的浏览效果