我有一些簡單的XML像這樣...換行符
<?xml version="1.0" encoding="UTF-8"?>
<root>
<sentence>
<word1>The</word1>
<word2>cat</word2>
<word3>sat</word3>
<word4>on</word4>
<word5>the</word5>
<word6>mat</word6>
</sentence>
<sentence>
<word1>The</word1>
<word2>quick</word2>
<word3>brown</word3>
<word4>fox</word4>
<word5>did</word5>
<word6>nothing</word6>
</sentence>
</root>
我希望能夠做的就是這個過程用XSLT創建一個句子,這樣 的〜貓(這是我最終希望能夠做的一個簡單的例子,這只是現在的一個絆腳石)。
我的XSLT看起來像這樣;
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="no" />
<xsl:template match="text()[not(string-length(normalize-space()))]"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<xsl:text>
</xsl:text>
<xsl:apply-templates />
</xsl:template>
<xsl:template match="/root/sentence">
<xsl:apply-templates />
<xsl:text>
</xsl:text>
</xsl:template>
<xsl:template match="word1">
<xsl:value-of select="text()" />
~
</xsl:template>
<xsl:template match="word2">
<xsl:value-of select="text()" />
~
</xsl:template>
<xsl:template match="word3">
<xsl:value-of select="text()" />
~
</xsl:template>
<xsl:template match="word4">
<xsl:value-of select="text()" />
~
</xsl:template>
<xsl:template match="word5">
<xsl:value-of select="text()" />
~
</xsl:template>
<xsl:template match="word6">
<xsl:value-of select="text()" />
~
</xsl:template>
</xsl:stylesheet>
如果我跑過來的XML樣式表我得到一條線的每個字的它自己的,然後在下一行蒂爾達,這樣
<?xml version="1.0" encoding="UTF-8"?>
The
~
cat
~
sat
~
on
~
the
~
mat
~
The
~
quick
~
brown
~
fox
~
did
~
nothing
~
如果我刪除tildas我得到
Thecatsatonthemat
它看起來對我,然後(我是新來這個XSLT東西),一個蒂爾達對在新線納入正迫使新線。
那麼,我該如何強制模板的輸出全部在一行? (我最後的要求是對元素進行更多的格式化,並使用空格來填充元素 - 稍後我會介紹)。
由於在期待
這當然有訣竅。謝謝 – Nerdio