創建空元素我無法弄清楚如何使用XSLT 1.0使用XSLT 1.0
<values>
<field name="abc"></field>
<field name="nch"></field>
</values>
建立以下XML不應該有任何空間之間的元素開始和結束標記。 請儘快幫助我。
謝謝。
創建空元素我無法弄清楚如何使用XSLT 1.0使用XSLT 1.0
<values>
<field name="abc"></field>
<field name="nch"></field>
</values>
建立以下XML不應該有任何空間之間的元素開始和結束標記。 請儘快幫助我。
謝謝。
在撒克遜您必須將輸出方法更改爲「html」。
實施例:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="yes"/>
<xsl:template match="/">
<values>
<field name="abc"></field>
<field name="nch"></field>
</values>
</xsl:template>
</xsl:stylesheet>
Here's對於VS2010工作的workearound。
實施例1:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<values>
<field name="abc">
<xsl:value-of select="substring-before(' ',' ')"/>
</field>
<field name="nch">
<xsl:value-of select="substring-before(' ',' ')"/>
</field>
</values>
</xsl:template>
</xsl:stylesheet>
實施例2:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<xsl:element name="values">
<xsl:element name="filed">
<xsl:attribute name="name">abc</xsl:attribute>
<xsl:value-of select="substring-before(' ',' ')"/>
</xsl:element>
<xsl:element name="filed">
<xsl:attribute name="name">nch</xsl:attribute>
<xsl:value-of select="substring-before(' ',' ')"/>
</xsl:element>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
輸出:
<?xml version="1.0" encoding="utf-8"?>
<values>
<filed name="abc"></filed>
<filed name="nch"></filed>
</values>
<x></x>
和<x/>
之間的區別純粹是詞法且通常不能由XSLT來控制處理器,因爲最終的輸出是由th執行的e串行器。
對於某些XSLT處理器(使用其內置的序列化器),其可以是能夠輸出一個空元素的完整形式。但是,對於其他處理器,例如Saxon,這不是(很容易)可能的。
我使用xalan xslt processor.is這可能在xalan中嗎? – user1904426
@ user1904426,對不起,我沒有安裝Xalan。您可以嘗試像'
遺憾。這也不起作用。謝謝 – user1904426
薩克遜不產生想要的結果。 –
感謝您的回覆,但這些都不適合我。這兩個例子都給出了相同的結論。 – user1904426
是的,你是對的。我已經用撒克遜測試過了,這和我在vs2010中的輸出結果不一樣。如果您使用saxon,則必須將輸出方法更改爲「html」而不是「xml」。 – Devx2017