需要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,并且整个过程会重复。下面您给出的模板很好。非常感谢。