跳转到内容

XML - 数据交换管理/XPath/答案

来自维基教科书,开放的书籍,开放的世界

XPath 章节 => XPath

XPath 练习 => 练习


XML

在本练习中,您将修改我们在第 8 章 XPath 中看到的 xsl-tree.xsl 文件...


  1. 打印所有厚度设置为“thick”的 bigBranch 元素的 name 属性。
  2. 打印每个 bigBranch 的父元素名称。
  3. 打印所有具有 color 属性的叶子颜色。


1. 打印所有厚度设置为“thick”的 bigBranch 元素的 name 属性

[编辑 | 编辑源代码]

xsl-tree1.xsl

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
	<xsl:output method="html"/>

	<xsl:template match="/child::trunk">
		<html>
			<head>
				<title>XPath Tree Tests</title>
			</head>
			<body>
				<xsl:for-each select="child::bigBranch[attribute::thickness='thick']">
					<xsl:call-template name="print_out"/>
				</xsl:for-each>
			</body>
		</html>
	</xsl:template>

	<xsl:template name="print_out">
		<xsl:value-of select="attribute::name"/>
		<br/>
	</xsl:template>

</xsl:stylesheet>

输出

bb1


2. 打印每个 bigBranch 的父元素名称

[编辑 | 编辑源代码]

xsl-tree2.xsl

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
	<xsl:output method="html"/>

	<xsl:template match="/child::trunk">
		<html>
			<head>
				<title>XPath Tree Tests</title>
			</head>
			<body>
				<xsl:for-each select="child::bigBranch">
					<xsl:call-template name="print_out"/>
				</xsl:for-each>
			</body>
		</html>
	</xsl:template>

	<xsl:template name="print_out">
		<xsl:value-of select="parent::node()/attribute::name"/>
		<br/>
	</xsl:template>

</xsl:stylesheet>

输出

the_trunk
the_trunk
the_trunk

3. 打印所有具有 color 属性的叶子颜色

[编辑 | 编辑源代码]

xsl-tree3.xsl

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
	<xsl:output method="html"/>

	<xsl:template match="/child::trunk">
		<html>
			<head>
				<title>XPath Tree Tests</title>
			</head>
			<body>
				<xsl:for-each select="descendant::leaf[string(attribute::color) != '']">
					<xsl:call-template name="print_out"/>
				</xsl:for-each>
			</body>
		</html>
	</xsl:template>

	<xsl:template name="print_out">
		<xsl:value-of select="attribute::name"/>, <xsl:value-of select="attribute::color"/>
		<br/>
	</xsl:template>

</xsl:stylesheet>

输出

leaf1, brown
leaf5, purple
leaf9, black
leaf14, red
leaf17, red

XPath 章节 => XPath

XPath 练习 => 练习

华夏公益教科书