Я новичок в XSL. Поэтому, пожалуйста, помогите мне с ниже. У меня 2 xmls. Я должен сделать следующее в преобразовании XSL.Сравнить данные 2 xmls в xslt
, если служащий/EmployeeInfo/FirstName = EmployeeSegment/EmployeeSummary/GivenName и служащий/EmployeeInfo/ЬазШате = EmployeeSegment/EmployeeSummary/Фамилия EmployeeID = EmployeeSegment/EmployeeSummary/EmpId
XML1
<Employee>
<EmployeeInfo>
<FirstName>ABC</FirstName>
<LastName>DEF</LastName>
</EmployeeInfo>
</Employee>
xml2
<EmployeeSegment>
<EmployeeSummary>
<EmpId>1234</EmpId>
<GivenName>ABC</GivenName>
<Surname>DEF</Surname>
</EmployeeSummary>
</EmployeeSegment>
Я пробовал следующее. Это не работает.
<xsl:param name="cjEmployeeSegment" select="document('CJ_Response.xml')"/>
<xsl:for-each select="/ns3:Employee/ns3:EmployeeInfo">
<xsl:variable name="empFirstName">
<xsl:value-of select="ns1:FirstName"/>
</xsl:variable>
<xsl:variable name="empLastName">
<xsl:value-of select="ns1:LastName"/>
</xsl:variable>
<xsl:for-each select="$cjEmployeeSegment/v32:EmployeeSegment/v31:EmployeeSummary">
<xsl:if test="$empFirstName=v31:GivenName and $empLastName=v31:Surname">
<ns12:EmployeeIdentifier>
<ns12:EmployeeID>
<xsl:value-of select="v31:EmpId"/>
</ns12:EmployeeID>
</ns12:EmployeeIdentifier>
</xsl:if>
</xsl:for-each>
</xsl:for-each>
Совет кодирования: замените способ установки empFirstName на ' '. Это более краткий и может быть в 5 раз быстрее. –
SO tip: никогда не говорите, что «не работает». Скажите, как это не удается. –