我是 XSLT 的新手,所以这个问题可能有点傻。有人可以向我解释这里发生了什么吗?
我有一个简单的 XML 文档(仅用于测试目的)及其样式表。
我不明白为什么要<xsl:value-of select="/.">
处理所有以下节点。我测试了“/。” XPath 中的表达式,它只选择名为child
.
另外,如果我用它替换/.
它.
会给出预期的结果(仅输出 node named 的值child
)。
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="style.xsl"?>
<catalog title= "Catalog">
catalog
<cd price = "10">
<title>
title text
<child>child</child>
</title>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<year>1985</year>
</cd>
<cd price = "11">
<title>
second title text
<child>second child </child>
</title>
<artist>Bob Dylan2</artist>
<country>USA2</country>
<company>Columbia2</company>
</cd>
</catalog>
样式表:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" media-type="text/html"/>
<xsl:template match="/">
<html>
<head>
<title> <xsl:value-of select="/catalog/@title" /> </title>
</head>
<body>
<xsl:apply-templates select="/catalog/cd/title"/>
</body>
</html>
</xsl:template>
<xsl:template match="child">
<b>
<xsl:value-of select="/.">
</xsl:value-of>
</b>
<br/>
</xsl:template>
</xsl:stylesheet>
结果:
title text catalog title text child Bob Dylan USA Columbia 1985 second title text second child Bob Dylan2 USA2 Columbia2
second title text catalog title text child Bob Dylan USA Columbia 1985 second title text second child Bob Dylan2 USA2 Columbia2