以下应该是简单或不可能做到的,但现在我不知道怎么做,所以我问。在我的 XSLT 中,我有生成元素的模板,然后应该再次对其进行转换。更精确的是,每当模板输出原始输入中将要进行转换的元素时,它应该再次进行转换。因此,无限循环是可能的,但要通过仔细设计模板来避免。举个例子:
输入.xml
<?xml version="1.0" encoding="utf-8" ?>
<example>
<a />
<b />
</example>
变换.xsl
<?xml version="1.0" encoding="UTF-8"?>
<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="@*|node()"><xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy></xsl:template>
<xsl:template match="a">a</xsl:template>
<xsl:template match="b">
<B>b <a /></B>
</xsl:template>
</xsl:transform>
当前输出.xml
<?xml version="1.0"?>
<example>
a
<B>b <a/></B>
</example>
所需的输出.xml
<?xml version="1.0"?>
<example>
a
<B>b a</B>
</example>
如果有的话,通过一次转换来实现这一目标的最佳解决方案是什么?