【发布时间】:2015-12-20 17:25:51
【问题描述】:
我正在尝试使用 xslt 从 xml 创建文本文件,但我遇到了问题。
这是我的 xml:
<?xml version="1.0" encoding="UTF-8"?>
<document>
<płytoteka>
<bestseller rok="2015">
<płyta id="p01">
<gatunek>Pop&Rock</gatunek>
<tytuł>Atramentowa</tytuł>
<wykonawca>Celińska Stanisława</wykonawca>
<data_premiery>2015-05-08</data_premiery>
<cena>37.49</cena>
<rok_nagrania>2015</rok_nagrania>
<czas_trwania>51:19</czas_trwania>
<czas_od_premiery>P222D</czas_od_premiery>
<dostepnosc mp3="1" cd="0" dvd="1"/>
<playlista>
<utwór>Czerń i biel<czas>3:27</czas>
</utwór>
<utwór>Czy o kimś ktoś<czas>2:17</czas>
</utwór>
<utwór>Atramentowa rumba<czas>5:16</czas>
</utwór>
<utwór>Do rycerzy, do szlachty, do mieszczan<czas>3:22</czas>
</utwór>
<utwór>Drzwi odemknij<czas>3:21</czas>
</utwór>
<utwór>Moje życie, twoje życie<czas>3:19</czas>
</utwór>
<utwór>Obfitość<czas>3:20</czas>
</utwór>
<utwór>Jego portret<czas>3:15</czas>
</utwór>
<utwór>I znowu on<czas>3:11</czas>
</utwór>
<utwór>Nie strasz<czas>3:55</czas>
</utwór>
<utwór>Smuteczku mój<czas>3:44</czas>
</utwór>
<utwór>Szeptem do mnie mów<czas>3:33</czas>
</utwór>
<utwór>Wielka słota<czas>3:11</czas>
</utwór>
<utwór>Wakacje z deszczem<czas>2:59</czas>
</utwór>
<utwór>Pieśń cygańska<czas>3:09</czas>
</utwór>
</playlista>
</płyta>
</bestseller>
</płytoteka>
</document>
接下来是我的 xslt 代码:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="text()">
<xsl:if test="normalize-space(.)">
<xsl:value-of select="concat(normalize-space(.), '')"/>
</xsl:if>
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="/">
<xsl:text>TXT
</xsl:text>
<xsl:apply-templates />
</xsl:template>
<xsl:template match="płytoteka">
<xsl:apply-templates select="bestseller"/>
<xsl:text>
</xsl:text>
</xsl:template>
<xsl:template match="bestseller">
<xsl:text>
</xsl:text>
<xsl:text>BESTSELLER:</xsl:text>
<xsl:value-of select="concat('		',./@rok,'
')" />
<xsl:text>
</xsl:text>
<xsl:apply-templates select="płyta"/>
<xsl:text>
</xsl:text>
</xsl:template>
<xsl:template match="płyta">
<xsl:text>
</xsl:text>
<xsl:text>PLYTA:
</xsl:text>
<xsl:text>Gatunek:	</xsl:text>
<xsl:apply-templates select="gatunek"/>
<xsl:text>
</xsl:text>
<xsl:text>Tytul: 	</xsl:text>
<xsl:apply-templates select="tytuł"/>
<xsl:text>
</xsl:text>
<xsl:text>Wykonawca: 	</xsl:text>
<xsl:apply-templates select="wykonawca"/>
<xsl:text>
</xsl:text>
<xsl:text>Data premiery: 	</xsl:text>
<xsl:apply-templates select="data_premiery"/>
<xsl:text>
</xsl:text>
<xsl:text>Cena: 	</xsl:text>
<xsl:apply-templates select="cena"/>
<xsl:text>
</xsl:text>
<xsl:text>Rok nagrania: 	</xsl:text>
<xsl:apply-templates select="rok_nagrania"/>
<xsl:text>
</xsl:text>
<xsl:text>Czas trwania: 	</xsl:text>
<xsl:apply-templates select="czas_trwania"/>
<xsl:text>
</xsl:text>
<xsl:text>Czas od premiery: 	</xsl:text>
<xsl:apply-templates select="czas_od_premiery"/>
<xsl:text>
</xsl:text>
<xsl:apply-templates select="playlista"/>
</xsl:template>
<xsl:template match="playlista">
<xsl:text>
</xsl:text>
<xsl:text>		UTWORY:
		</xsl:text>
<xsl:for-each select="utwór">
<xsl:value-of select="."/>
</xsl:for-each>
<xsl:text>
</xsl:text>
</xsl:template>
</xsl:stylesheet>
我的输出:
TXT
BESTSELLER: 2015
PLYTA:
Gatunek: Pop&Rock
Tytul: Atramentowa
Wykonawca: Celińska Stanisława
Data premiery: 2015-05-08
Cena: 37.49
Rok nagrania: 2015
Czas trwania: 51:19
Czas od premiery: P222D
UTWORY:
Czerń i biel3:27
Czy o kimś ktoś2:17
Atramentowa rumba5:16
Do rycerzy, do szlachty, do mieszczan3:22
Drzwi odemknij3:21
Moje życie, twoje życie3:19
Obfitość3:20
Jego portret3:15
I znowu on3:11
Nie strasz3:55
Smuteczku mój3:44
Szeptem do mnie mów3:33
Wielka słota3:11
Wakacje z deszczem2:59
Pieśń cygańska3:09
问题是关于xml文件中的元素“utwór”和“czas”,我想在txt输出中显示这些元素,更划分,例如:
UTWORY:
Czerń i biel 3:27
Czy o kimś ktoś 2:17
Atramentowa rumba 5:16
Do rycerzy, do szlachty, do mieszczan 3:22
Drzwi odemknij 3:21
Moje życie, twoje życie 3:19
Obfitość 3:20
Jego portret 3:15
I znowu on 3:11
Nie strasz 3:55
Smuteczku mój 3:44
Szeptem do mnie mów 3:33
Wielka słota 3:11
Wakacje z deszczem 2:59
Pieśń cygańska 3:09
我只是想在这些元素之间留出空间,或者更好地以某种顺序显示这两个元素,只是为了赏心悦目,比如:
UTWORY:
Czerń i biel 3:27
Czy o kimś ktoś 2:17
Atramentowa rumba 5:16
Do rycerzy, do szlachty, do mieszczan 3:22
Drzwi odemknij 3:21
Moje życie, twoje życie 3:19
Obfitość 3:20
Jego portret 3:15
I znowu on 3:11
Nie strasz 3:55
Smuteczku mój 3:44
Szeptem do mnie mów 3:33
Wielka słota 3:11
Wakacje z deszczem 2:59
Pieśń cygańska 3:09
有可能吗? 我正在使用转换http://xsltransform.net
还有一件事,我要为一些波兰词道歉,我懒得把一些元素的名称翻译成英文,我知道如果一切都是英文的,文件会更清楚,但最后,这只是关于 xslt 逻辑。提前谢谢你。
【问题讨论】: