2014-02-26 48 views
0

我在運行xslt2.0轉換後得到以下輸出。XSLT2.0轉換生成多行標籤

<TAG mode="w" 
      name="x" 
      references="x" 
      size="5005" 
      type="string"/> 

我想這是傾倒在一條線本身。它打破了線

<TAG mode="w" name="x" references="x" size="5005" type="string"/> 

代碼是:

<xsl:output method="xml" encoding="UTF-8" byte-order-mark="no" indent="yes"/> 
<xsl:template name="agt:var1_function1"> 
    <xsl:param name="par0" as="node()"/> 
    <TAG> 
     <xsl:sequence select="($par0/@node(), $par0/node())"/> 
    </TAG> 
</xsl:template> 

能否請你建議我什麼,我做錯了什麼,爲什麼這條線被破成多行?

問候 拉傑什

+0

你忘了發佈錯誤的輸出。 – Oscar

+0

謝謝奧斯卡獎。縮進是錯誤的。 – user3355730

+0

您的問題是重複的http://stackoverflow.com/questions/1922882/xsl-remove-a-line-break-from-text – Oscar

回答

1

如果您的XSLT處理器薩克森9那麼它有一個序列化選項http://www.saxonica.com/documentation/html/extensions/output-extras/line-length.html您可以設置來定義哪些屬性應該在一個新的行放線長度。由於您不想換行,我會使用非常高的值,例如

<xsl:output xmlns:saxon="http://saxon.sf.net/" saxon:line-length="5000"/> 
+0

謝謝馬丁,我試過序列化選項,但仍然是相同的結果。我從命令行運行xslt java -jar saxon9he input.xml transform.xslt -o:output.xml我是否需要更改命令 – user3355730

+0

@ user3355730中的任何內容,當我嘗試使用Saxon 9.5時,他會得到一個錯誤說「轉換失敗:請求的功能(自定義序列化{http://saxon.sf.net/}line-length)需要Saxon-PE」,所以我擔心這個選項不被HE支持。另一方面,我不明白你爲什麼沒有得到同樣的錯誤。使用Saxon 9.5 PE時,只要設置了'xsl:output indent =「yes」',saxon:line-length'就可以工作。 –