【发布时间】:2011-09-25 14:33:21
【问题描述】:
是否可以从 XSLT 中删除 xml 属性并使用生成的转换?
换句话说,我有以下 XML:
<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet type="text/xsl" href="XML_TEST.xslt"?>
<report xmlns="abc123">
<book>
<page id="22">
</page>
<page id="23">
</page>
</book>
</report>
我知道我可以使用以下 XSLT 来剥离属性:
<xsl:template match ="@*" >
<xsl:attribute name ="{local-name()}" >
<xsl:value-of select ="." />
</xsl:attribute>
<xsl:apply-templates/>
</xsl:template>
<xsl:template match ="*" >
<xsl:element name ="{local-name()}" >
<xsl:apply-templates select ="@* | node()" />
</xsl:element>
</xsl:template>
但如果我想读取值,请使用以下模板
<xsl:template match="report">
<xsl:for-each select="book/page">
<xsl:value-of select="@id"/>
</xsl:for-each>
</xsl:template>
我可以将该模板链接到前两个的输出吗?
提前致谢,
-R.
【问题讨论】:
-
你需要两个输出吗?如果不是这样,从单个 xslt 中获得所需的内容可能会更容易。你能添加你想要得到的输出吗?
-
好问题,+1。请参阅我的答案以获得两个完整、简短、简单且容易的解决方案。 :)
-
+1 表示好问题 TITLE。
-
@cordsen:我要获取的值是 id,因此最终输出应该只是呈现简单的内容,例如:2223。
标签: xml xslt transform chaining