1
に対する試験条件:XSLT:以下の条件が真である場合、私は、追加のノードを作成する必要がある2つのノード
NOT(TYPE = 'WE' AND 'CH' = '真')IF - >作成MISSING新しいノード
出典:
<?xml version="1.0" encoding="UTF-8"?>
<Partner>
<NR>10</NR>
<SR>
<PF>
<TYPE>WE</TYPE>
<NR>2345</NR>
<CH>false</CH>
</PF>
<PF>
<TYPE>WE</TYPE>
<NR>111</NR>
<CH>false</CH>
</PF>
<PF>
<TYPE>RG</TYPE>
<NR>999</NR>
<CH>true</CH>
</PF>
</SR>
<SR>
...
</SR>
</Partner>
所望の出力:
<?xml version="1.0" encoding="UTF-8"?>
<Partner>
<NR>10</NR>
<SR>
<PF>
<TYPE>WE</TYPE>
<NR>2345</NR>
<CH>false</CH>
</PF>
<PF>
<TYPE>WE</TYPE>
<NR>111</NR>
<CH>false</CH>
</PF>
<PF>
<TYPE>RG</TYPE>
<NR>999</NR>
<CH>true</CH>
</PF>
<XX>MISSING</XX>
</SR>
<SR>
...
</SR>
</Partner>
私は本当にSTRUこの試験条件を作成するためのggle - 私は2つのノードのための内容を確認する必要があります。
<xsl:if test="not(./PF/TYPE = 'WE' and CH = 'true')">
私は<CH>
が<TYPE> = 'WE'
コンテキストで評価されていることを確認する必要がありますが、私はこれを行うにはありませんか...
私のXSLTは、次のようになります。
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>
<xsl:template match="Partner">
<PARTNER>
<xsl:for-each select="./SR">
<SR>
...
<xsl:copy-of select= "./PF">
<xsl:if test="not(./PF/TYPE = 'WE' and CH = 'true')">
<XX>MISSING</XX>
</xsl:if>
</SR>
</xsl:for-each>
</PARTNER>
</xsl:template>
</xsl:stylesheet>
ありがとうございました!私の日を救った! – multix