xsl:if
タグをxsltからすべて削除する方法はありますか?Javaを使用してxsltからすべてのxsl:ifタグを削除する
私はすべてのタグ名を取得したいxsltを持っています。私はこのxslが書かれているxmlの入力にアクセスできないので、dummy.xmlとoutput.xmlを生成するためにxslを適用し、そのoutput.xmlからすべてのノードの名前を取得しています。しかし、問題は、xslには、特定の値がnullでないかどうかをチェックする条件があることがあります。そのタグだけが出力XMLに書き込まれます。では、xsltからすべてのxsl:ifタグを削除する方法はありますか?
ダミーのxml:
<?xml version="1.0" encoding="UTF-8"?>
<map>
</map>
XSLコード:
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0">
<xsl:strip-space elements="*" />
<xsl:template match="/map">
<xsl:attribute name="xsi:noNamespaceSchemaLocation">
<xsl:text>Test</xsl:text>
</xsl:attribute>
<xsl:if test="@TRANSACTIONDATETIME != ''">
<xsl:element name="TransactionDateTime">
<xsl:value-of select="@TRANSACTIONDATETIME"/>
</xsl:element>
</xsl:if>
<xsl:if test="@CHANGEINDICATOR != ''">
<xsl:element name="ChangeIndicator">
<xsl:value-of select="@CHANGEINDICATOR"/>
</xsl:element>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
ありません私は私のダミーのXML出力XMLにこのXSLを適用する場合の条件付きタグが含まれていません。
だから私はxsltから条件をすべて削除して、私が望むようにxmlを生成できるようにしたいと思います。
私が欲しいの予想される出力はありませんXSLとXSLTです:
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0">
<xsl:strip-space elements="*" />
<xsl:template match="/map">
<xsl:attribute name="xsi:noNamespaceSchemaLocation">
<xsl:text>Test</xsl:text>
</xsl:attribute>
<xsl:element name="TransactionDateTime">
<xsl:value-of select="@TRANSACTIONDATETIME"/>
</xsl:element>
<xsl:element name="ChangeIndicator">
<xsl:value-of select="@CHANGEINDICATOR"/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
注::ifタグで、XSLTで何千ものがあるので、私は取引日と変更インジケータの値が含まれるようにダミーのXMLを変更することはできません私はこの行動をしたい。
はあなたの応答をありがとうございました –