2011-11-07 43 views
0

假設我有這樣的XML ...在Xalan的XSLT 1.0,需要一個函數返回所有子元素名稱

<books> 
    <book> 
    <author> 
    <title> 
    <publish_date> 
    <isbn_number> 
    <book> 
</books> 

...我怎麼可以編寫一個函數或內置函數使用,返回一個字符串,只是書的所有子元素名稱的逗號分隔連字符?像這樣...

author,title,publish_date,isbn_number 

我需要這個以打印第一行標題的CSV文件

回答

2

以下最低樣式表適用於您的給定輸入(修改得到很好的形成):

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:output method="text"/> 
    <xsl:strip-space elements="*"/> 
    <xsl:template match="book/*"> 
     <xsl:value-of select="local-name()"/> 
     <xsl:if test="position() != last()">,</xsl:if> 
    </xsl:template> 
</xsl:stylesheet> 
+0

其實,這應該是一個for-each?它不起作用 – raffian

+0

@RaffiM - 這可以用'for-each'來實現,但這絕對沒有必要。 –

+0

@RaffiM - 嘗試將模板匹配更改爲'match =「/ books/book/*」' –

相關問題