仍然使用XSLT進行調整。通過使用id轉換改變了我的解決方案,但無法離開,如何直接使用轉換後的項目(如果可能)XSLT執行標識轉換並使用轉換後的數據
源是兩個列表,它們將通過id轉換進行組合。 mapping-list將轉換後的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轉換,我將子節點更改爲NewItem節點,從第二個列表添加信息並添加所需的屬性。
<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節點做任何事情。使用模板,按類型選擇它們,什麼都不起作用,是否真的只能生成輸出,而不是進一步處理?
似乎你沒有從你幾乎相同的問題的答案中學到任何東西 - 我懶得在這裏複製相同的答案 - 也複製相同的評論,解釋它的細節。通過閱讀一本好的XSLT書籍,可以更好地花費時間來了解該語言的基礎知識。 –