Я пытаюсь сопоставить формат XML с XML через XSLT. Мой код хорошо работает при использовании преобразования XSL в Studio, но при подключении к исходящему EIB некоторые поля не работают специально при нескольких xpaths.
Вот XML:
<?xml version="1.0" encoding="UTF-8"?>
<wd:Report_Data xmlns:wd="urn:com.workday.report/Job_Requisition_Details">
<wd:Report_Entry>
<wd:Job_ID>12345</wd:Job_ID>
<wd:Job_Title>Associate Manager, Packaging Engineer</wd:Job_Title>
<wd:Time_Type wd:Descriptor="Full time">
<wd:ID wd:type="WID">c6ae74e96c9c45569afea6b4c1bb5ca5</wd:ID>
<wd:ID wd:type="Position_Time_Type_ID">Full_time</wd:ID>
</wd:Time_Type>
</wd:Report_Entry>
</wd:Report_Data>
Вот мой код:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:wd="urn:com.workday.report/Job_Requisition_Details" version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:strip-space elements="*"/>
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<!-- TODO: Auto-generated template -->
<body>
<xsl:for-each select="wd:Report_Data/wd:Report_Entry">
<wd:Job_ID>
<xsl:value-of select="wd:Job_ID"/>
</wd:Job_ID>
<wd:Job_Title>
<xsl:value-of select="wd:Job_Title"></xsl:value-of>
</wd:Job_Title>
<wd:Time_Type>
<xsl:for-each select="wd:Time_Type">
<wd:Descriptor>
<xsl:value-of select="@wd:Descriptor"></xsl:value-of>
</wd:Descriptor>
<wd:WID>
<xsl:value-of select="wd:ID[@wd:type = 'WID']"></xsl:value-of>
</wd:WID>
<wd:Position_Time_Type>
<xsl:value-of select="wd:ID[@wd:type = 'Position_Time_Type_ID']"></xsl:value-of>
</wd:Position_Time_Type>
</xsl:for-each>
</wd:Time_Type>
</xsl:for-each>
</body>
</xsl:template>
</xsl:stylesheet>
Вот результат после присоединения к исходящему EIB:
<?xml version="1.0" encoding="UTF-8"?>
<body xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:fn="http://www.w3.org/2005/xpath-functions"
xmlns:wd="urn:com.workday.report/Job_Requisition_Details">
<wd:Job_ID>12345</wd:Job_ID>
<wd:Job_Title>Associate Manager, Packaging Engineer</wd:Job_Title>
<wd:Time_Type>
</wd:Descriptor>
</wd:WID>
</wd:Position_Time_Type>
</wd:Time_Type>
</body>
Требуемый вывод:
<?xml version="1.0" encoding="UTF-8"?>
<body xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:fn="http://www.w3.org/2005/xpath-functions"
xmlns:wd="urn:com.workday.report/Job_Requisition_Details">
<wd:Job_ID>12345</wd:Job_ID>
<wd:Job_Title>Associate Manager, Packaging Engineer</wd:Job_Title>
<wd:Time_Type>
<wd:Descriptor>Full time</wd:Descriptor>
<wd:WID>c6ae74e96c9c45569afea6b4c1bb5ca5</wd:WID>
<wd:Position_Time_Type>Full_time</wd:Position_Time_Type>
</wd:Time_Type>
</body>
Помогите, тоже пробовал разные объявления, но все равно не работает. Заранее благодарю