XSLT检查-如果父节点有子节点,则将xml等效为Y
我有一个类似于:XSLT检查-如果父节点有子节点,则将xml等效为Y,xml,xslt,Xml,Xslt,我有一个类似于: <EnhancedData> <EmailAddress>abc.def@email.com</EmailAddress> <PassengerName>ABC/DEF</PassengerName> <RecordLocator_PNR>ABCDEF</RecordLocator_PNR>
<EnhancedData>
<EmailAddress>abc.def@email.com</EmailAddress>
<PassengerName>ABC/DEF</PassengerName>
<RecordLocator_PNR>ABCDEF</RecordLocator_PNR>
</EnhancedData>
美国广播公司。def@email.com
ABC/DEF
ABCDEF
我使用的对应XSLT如下所示:
<xsl:for-each select="EnhancedData">
<xsl:if test="*">
<EnhancedData>
<xsl:value-of select="Y" />
</EnhancedData>
</xsl:if>
</xsl:for-each>
<xsl:for-each select="EnhancedData/EmailAddress">
<EmailAddress>
<xsl:value-of select="." />
</EmailAddress>
</xsl:for-each>
<xsl:for-each select="EnhancedData/PassengerName">
<PassengerName>
<xsl:value-of select="." />
</PassengerName>
</xsl:for-each>
<xsl:for-each select="EnhancedData/RecordLocator_PNR">
<RecordLocator_PNR>
<xsl:value-of select="." />
</RecordLocator_PNR>
</xsl:for-each>
<EnhancedData/>
<EmailAddress>abc.def@email.com</EmailAddress>
<PassengerName>ABC/DEF</PassengerName>
<RecordLocator_PNR>ABCDEF</RecordLocator_PNR>
我使用的Java代码使用XSLT将xml转换为另一个o/p文件。如果包含任何子节点,我需要将增强数据设置为Y
使用当前代码,输出xml如下所示:
<xsl:for-each select="EnhancedData">
<xsl:if test="*">
<EnhancedData>
<xsl:value-of select="Y" />
</EnhancedData>
</xsl:if>
</xsl:for-each>
<xsl:for-each select="EnhancedData/EmailAddress">
<EmailAddress>
<xsl:value-of select="." />
</EmailAddress>
</xsl:for-each>
<xsl:for-each select="EnhancedData/PassengerName">
<PassengerName>
<xsl:value-of select="." />
</PassengerName>
</xsl:for-each>
<xsl:for-each select="EnhancedData/RecordLocator_PNR">
<RecordLocator_PNR>
<xsl:value-of select="." />
</RecordLocator_PNR>
</xsl:for-each>
<EnhancedData/>
<EmailAddress>abc.def@email.com</EmailAddress>
<PassengerName>ABC/DEF</PassengerName>
<RecordLocator_PNR>ABCDEF</RecordLocator_PNR>
美国广播公司。def@email.com
ABC/DEF
ABCDEF
我需要的是:
<EnhancedData>Y</EnhancedData>
<EmailAddress>abc.def@email.com</EmailAddress>
<PassengerName>ABC/DEF</PassengerName>
<RecordLocator_PNR>ABCDEF</RecordLocator_PNR>
Y
美国广播公司。def@email.com
ABC/DEF
ABCDEF
而不是
<xsl:value-of select="Y" />
只用
<xsl:text>Y</xsl:text>
Y
以下代码有效:Y N