需要xslt样式表从下面的输入xml转换为输出xml
需要比较需要xslt样式表从下面的输入xml转换为输出xml,xml,xslt,Xml,Xslt,需要比较 info/targetAudienceInfo/labelLocaleTextID和info/languageTranslation/localeTextID,如果匹配,则需要在标记下显示相应的languageTranslation/localeText的值,而不是 同样,需要比较info/targetAudienceInfo/standAloneLabelLocaleTextID和info/languageTranslation/localeTextID的值,如果匹配,则需要使用xs
info/targetAudienceInfo/labelLocaleTextID
和info/languageTranslation/localeTextID
,如果匹配,则需要在
标记下显示相应的languageTranslation/localeText的值,而不是
同样,需要比较info/targetAudienceInfo/standAloneLabelLocaleTextID
和info/languageTranslation/localeTextID
的值,如果匹配,则需要使用xslt在
标记下显示相应的languageTranslation/localeTex
的值
以下是输入xml:
<info>
<xmlTag>sender</xmlTag>
<displayOrder>103</displayOrder>
<targetAudienceInfo>
<targetAudienceCode>SERVE</targetAudienceCode>
<labelLocaleTextID>417</labelLocaleTextID>
<standAloneLabelLocaleTextID>404</standAloneLabelLocaleTextID>
</targetAudienceInfo>
<languageTranslation>
<localeTextID>417</localeTextID>
<languageISOCode>ENGLISH</languageISOCode>
<languageLocaleID>en-US</languageLocaleID>
<localeText>Sender1</localeText>
</languageTranslation>
<languageTranslation>
<localeTextID>404</localeTextID>
<languageISOCode>ENGLISH</languageISOCode>
<languageLocaleID>en-US</languageLocaleID>
<localeText>Sender2</localeText>
</languageTranslation>
发件人
103
服侍
417
404
417
英语
恩美
发送者1
404
英语
恩美
发送者2
以下是预期的xml输出:
<info>
<label>Sender1</label>
<standAloneLabel>Sender2</standAloneLabel>
<displayOrder>103</displayOrder>
<targetAudienceInfo>
<targetAudienceCode>SERVE</targetAudienceCode>
<labelLocaleTextID>417</labelLocaleTextID>
<standAloneLabelLocaleTextID>404</standAloneLabelLocaleTextID>
</targetAudienceInfo>
<languageTranslation>
<localeTextID>417</localeTextID>
<languageISOCode>ENGLISH</languageISOCode>
<languageLocaleID>en-US</languageLocaleID>
<localeText>Sender1</localeText>
</languageTranslation>
<languageTranslation>
<localeTextID>404</localeTextID>
<languageISOCode>ENGLISH</languageISOCode>
<languageLocaleID>en-US</languageLocaleID>
<localeText>Sender2</localeText>
</languageTranslation>
</info>
发送者1
发送者2
103
服侍
417
404
417
英语
恩美
发送者1
404
英语
恩美
发送者2
以下样式表将在应用于输入示例时产生预期结果。你没有说如果没有比赛,或者如果有不止一场比赛,会发生什么
XSLT1.0
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:key name="trans" match="languageTranslation" use="localeTextID" />
<!-- identity transform -->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="xmlTag">
<label>
<xsl:value-of select="key('trans', ../targetAudienceInfo/labelLocaleTextID)/localeText" />
</label>
<standAloneLabel>
<xsl:value-of select="key('trans', ../targetAudienceInfo/standAloneLabelLocaleTextID)/localeText" />
</standAloneLabel>
</xsl:template>
</xsl:stylesheet>
“如果匹配,则需要显示..的值”,如果不匹配,则需要显示..的值。很抱歉,我错过了该部分的更新。在输入xml中,如果存在xml标记,则会出现防御目标AudienceInfo和languageTranslation,并且整个过程会重复。下面您给出的模板很好。非常感谢。