1
有沒有什麼辦法可以從xslt中刪除所有xsl:if
標記?使用Java從xslt中刪除所有xsl:if標記
我有一個xslt從中我想檢索所有的標籤名稱。我無法訪問爲此xsl編寫的輸入xml,因此我製作了虛擬xml並在其上應用xsl以生成output.xml,並從output.xml中檢索所有節點的名稱。但問題是,在xsl中有if
條件來檢查特定值是否爲空,那麼只有該標籤將寫入輸出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>
沒有當我這個XSL應用到我的虛擬XML輸出XML不包括與如果條件標記。
所以我想刪除所有條件從xslt,以便我可以生成xml,因爲我想要的。
預計輸出我要的是XSLT沒有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: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>
注:我不能修改虛擬XML,因爲有成千上萬的XSLT在其上包括交易日期和改變指標值我想要執行此操作。
非常感謝您的回覆 –