我有一些XML重复的元素,例如目的,它看起来像这样:检查在输出
<root>
<field1>test</field1>
<f2>t2</f2>
<f2>t3</f2>
</root>
我想用XSLT转换它,但我想抑制第二F2元素在输出中 - 我如何检查模板内部,以查看源代码中第二个f2元素的处理过程中f2元素是否已经存在于输出中?我的XSLT看起来是这样的,目前:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="no" omit-xml-declaration="yes" standalone="no" />
<xsl:template match="/">
<xsl:for-each select="./root">
<output>
<xsl:apply-templates />
</output>
</xsl:for-each>
</xsl:template>
<xsl:template match="*" >
<xsl:element name="{name(.)}">
<xsl:value-of select="." />
</xsl:element>
</xsl:template>
</xsl:stylesheet>
我需要做某种围绕XSL检查:元素在模板我想,但我不知道如何来询问输出文件,看是否该元素已经存在。
编辑:忘了pre标签,代码应该现在可见!
你也可以简单地用这个谓词做一个模板,我会想。 – 2008-10-01 16:40:32
这是完美的。是的,我只需要在同一父母内部抑制重复,我想明确地允许其他父母中的相同元素 - 这很好用,并且比使用按键和Muenchen方法下去的路线简单得多! – 2008-10-02 09:09:42