仍在摆弄 XSLT。通过使用 id-transformation 更改了我的解决方案方法,但无法退出,如何直接使用转换后的项目(如果可能)
源是两个列表,它们将通过 id-transformation 组合在一起。映射列表转换后的 xml,项目被导入到 $items 变量中。
<mapping>
<sub id="1" item="a" group="a">
<sub id="2" item="b" group="a">
<sub id="3" item="d" group="b">
<sub id="4" item="e" group="b">
<sub id="5" item="f" group="c">
</mapping>
<items>
<item id="a" val="OK"/>
<item id="b" val="ERROR"/>
<item id="c" val="OK"/>
<item id="d" val="OK"/>
<item id="e" val="OK"/>
<item id="f" val="OK"/>
</items>
使用 id-transformation,我将子节点更改为 NewItem-nodes,从第二个列表中添加信息并添加所需的属性。
<xsl:template match="node() | @*">
<xsl:copy>
<xsl:apply-templates select="node() | @*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="sub">
<xsl:element name="NewItem">
<xsl:apply-templates select="@*"/>
<xsl:apply-templates select="$items/item[@id = ./@item]/@group"/>
</xsl:element>
</xsl:template>
但在那之后,我似乎无法对生成的 NewItem 节点做任何事情。使用模板,按类型选择它们,没有任何效果,真的只能生成输出,而不是进一步处理吗?