有沒有辦法在單個標記中列出 XSLT 中的所有“for-each”值,但以分號分隔的值,而不是具有多個值的多個標記?例如:
XSLT
<xsl:for-each select="/StringAssetInfoMulti[attrTagName='LeadActor']/values/s">
<xsl:element name="{'LeadActor'}">
<xsl:value-of select="."/>
</xsl:element>
</xsl:for-each>
要轉換的 XML
<StringAssetInfoMulti attrId.l="2870">
<attrTagName t="ws">LeadActor</attrTagName>
<attrName t="ws">LeadActor</attrName>
<values t="lws">
<s>Rufa Mae Quinto</s>
<s>Edgar Allan Guzman</s>
<s>Angelina Kanapi</s>
<s>Barbie Capacio</s>
<s>Jude Matthew Servilla</s>
</values>
</StringAssetInfoMulti>
因此,不要將 LeadActors 標記轉換為以下結果:
<LeadActor>Rufa Mae Quinto</LeadActor>
<LeadActor>Edgar Allan Guzman</LeadActor>
<LeadActor>Angelina Kanapi</LeadActor>
<LeadActor>Barbie Capacio</LeadActor>
<LeadActor>Jude Matthew Servilla</LeadActor>
我需要一個轉換,可以將所有結果合并到一個帶有分號分隔值的標簽中:
<LeadActor>Rufa Mae Quinto;Edgar Allan Guzman;Angelina Kanapi;Barbie Capacio;Jude Matthew Servilla</LeadActor>
這可能嗎?我將在 XSLT 中添加什么?謝謝!
uj5u.com熱心網友回復:
在 XSLT 2 及更高版本中,您可以使用
<LeadActor>
<xsl:value-of select="/StringAssetInfoMulti[attrTagName='LeadActor']/values/s" separator=";"/>
</LeadActor>
在 XSLT 1 中,很明顯您需要使用 for-each 或 apply-templates 處理,然后將除最后一項或除第一項之外的所有;內容作為分隔符輸出,例如<xsl:text>;</xsl:text>
<xsl:for-each select="/StringAssetInfoMulti[attrTagName='LeadActor']/values/s">
<xsl:if test="position() > 1">
<xsl:text>;</xsl:text>
</xsl:if>
<xsl:value-of select="."/>
</xsl:for-each>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/418190.html
標籤:
