我想用xslt检索一个元素的文本,但是我不能这样做。请问你能告诉我哪部分代码是假的? 我的xslt文件是:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
<xsl:template match="zoo">
<html>
<title>
<xsl:text>ZOO</xsl:text>
</title>
<head>
<h1>Behausung im Zoo "Zoogarten"</h1>
</head>
<p>
<xsl:apply-templates select="zootier" />
</p>
</html>
</xsl:template>
<xsl:template match="zootier">
<xsl:for-each select="zoo/zootier" >
<xsl:apply-templates select="name" />
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
这部分代码是否正确检索元素文本?
这是我的示例xml文件:
<zoo name="zoogarten">
<zootier id="tier1" flugfaeghig="false">
<name>erna</name>
<alter>2</alter>
<schlachtgewicht>1500</schlachtgewicht>
</zootier>
<zootier id="tier2" schimmel="false">
<name>peter</name>
<alter>4</alter>
<tragezeit>11</tragezeit>
</zootier>
<zootier id="tier3" >
<name>minka</name>
<alter>3</alter>
<tragezeit>2</tragezeit>
<fellfarbe>hell</fellfarbe>
</zootier>
.....
答案 0 :(得分:1)
很多部分。 zoo/zootier
上下文中的zootier
可能不是您想要的。你可能不需要任何for-each
。有一个样本xml会有所帮助。
此外,title
元素应该是head
的子元素,但这不是您的直接问题。
编辑:处理zootier
<xsl:template match="zootier">
<xsl:value-of select="name/text()"/>
<xsl:if test="count(following-sibling::zootier)">,</xsl:if>
</xsl:template>