我是XSLT的新手。我正嘗試從XSLT生成文本文件。當我使用XALAN分析器對輸入XML運行XSLT時,文本文件生成時沒有輸出。XSLT輸出不顯示
這是XSLT
<xsl:stylesheet version="2.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:output method="text" />
<xsl:template match="/">
<xsl:variable name="cities" as="xs:string*">
<xsl:sequence select="addressbook/address/city" />
<xsl:sequence select="'Virginia'" />
</xsl:variable>
<xsl:text>These are some of the cities:

</xsl:text>
<xsl:value-of select="$cities" separator="
" />
</xsl:template>
這是XML
<?xml version="1.0" ?>
<addressbook>
<address>
<name>Peter Thompson</name>
<stree>3456 South Blvd.</stree>
<city>Chicago</city>
<state>IL</state>
<zip-code>34678</zip-code>
</address>
<address>
<name>Jason Thompson</name>
<stree>3456 Fort Main</stree>
<city>South Carolina</city>
<state>NC</state>
<zip-code>67878</zip-code>
</address>
我嘗試編譯它以這種方式:
java -classpath ~/Downloads/xalan/xalan.jar org.apache.xalan.xslt.Process -in cities.xml -xsl cities.xsl -out citiesop.txt
的cities.txt
文件只輸出生成的:
這些都是一些城市。
請幫助我理解這裏出了什麼問題。
或者簡單地將版本標籤更改爲1.0,並相應地命名空間。我沒有看到任何特定於xslt2的指令 –
@ AydinK.'xsl:sequence'和'xsl:value-of @ separator'和'xsl:variable @ as' – wero
這似乎不正確的向前兼容的行爲。當運行2.0樣式表的1.0處理器看到未知屬性(如@as)時,它應該忽略它,但是當它試圖執行未知元素(如xsl:sequence)時,它應該會引發錯誤。好吧,我想這不會被修復。 –