0
У меня есть XML:Как изменить значение XML с помощью XSL
<?xml version="1.0" encoding="UTF-8"?>
<COLLECTION>
<AddedParts NAME="AddedParts" TYPE="Unknown" STATUS="0">
<Part>
<ProcurementType>make</ProcurementType>
<CountryOfOrigin/>
</Part>
</AddedParts>
<ChangedParts NAME="ChangedParts" TYPE="Unknown" STATUS="0">
<Part>
<ProcurementType>make</ProcurementType>
<CountryOfOrigin/>
</Part>
<Part>
<ProcurementType>buy</ProcurementType>
<CountryOfOrigin/>
</Part>
</ChangedParts>
<DeletedParts NAME="DeletedParts" TYPE="Unknown" STATUS="0">
<Part>
<ProcurementType>singlesource</ProcurementType>
<CountryOfOrigin/>
</Part>
<Part>
<ProcurementType>make</ProcurementType>
<CountryOfOrigin/>
</Part>
</DeletedParts>
Я хочу изменить CountryOfOrigin и ProcurementType на основе ProcurementType. Преобразование требуется следующим Для ProcurementType
- макияж ---> м
- купить -----> P
- singlesource -> P
- с открытым исходным кодом -> Р
Для CountryOfOrigin Если ProcurementType является
- марка - >> MX
- купить -----> US
- singlesource -> US
- с открытым исходным кодом -> США
Для этого я применил.
<xsl:template match="CountryOfOrigin">
<countryOfOrigin>
<xsl:choose>
<xsl:when test="../../Part/ProcurementType='make'">MX</xsl:when>
<xsl:when test="../../Part/ProcurementType='buy'">US</xsl:when>
<xsl:when test="../../Part/ProcurementType='singlesource'">US</xsl:when>
<xsl:when test="../../Part/ProcurementType='opensource'">US</xsl:when>
</xsl:choose>
</countryOfOrigin>
</xsl:template>
<xsl:template match="Part/ProcurementType">
<procurementType>
<xsl:choose>
<xsl:when test="../../Part/ProcurementType='make'">M</xsl:when>
<xsl:when test="../../Part/ProcurementType='buy'">P</xsl:when>
<xsl:when test="../../Part/ProcurementType='singlesource'">P</xsl:when>
<xsl:when test="../../Part/ProcurementType='opensource'">P</xsl:when>
</xsl:choose>
</procurementType>
</xsl:template>
Это не работает. Независимо от того, что бы я ни применял в XSL, он реплицируется для всего содержимого. Нужна помощь
Спасибо большое он работал для меня. –