0
我使用Altova XMLSpy和Saxon。撒克遜在結果文件中添加了很多標籤和換行符。所以我加了模板(在這裏發現了計算器):在Saxon剝離額外的換行
<xsl:template match="*/text()[normalize-space()]">
<xsl:value-of select="normalize-space()"/>
</xsl:template>
<xsl:template match="*/text()[not(normalize-space())]" />
樣式表,整齊地去除所有多餘的空白。
<p>this is <i>italic</i> text</p>
所以兩者的Altova:但是,之前也和<我> .... < /我>和<q> .... </Q >一個<p>內後取出空間撒克遜給了我:
<p>this is<i>italic</i>text</p>
我該如何解決這個問題?
我不知道撒克遜人添加標籤和新行。請發佈最少但完整的XML,XSLT樣本以及想要的和生成的輸出,以便我們可以瞭解白色空間的來源。我們需要知道'xsl:output'的輸出方法和'indent'屬性的設置。 –
感謝您的評論。縮進設置爲YES,當我將其設置爲NO時,Altova和Saxon不添加製表符和NL。他們也不會刪除i/q標籤前後提及的空間。但是,輸出也不縮進,所以很難讀取。對我來說,撒克遜將0D/0A組合改爲0A,並有很多空間。 – Erik
XML解析和XSLT序列化都遵循相關規範中的規則,例如http://www.w3.org/TR/xml/#sec-line-ends命令,行結束由XML解析器進行規範化。正如我所說,發佈最少但完整的樣本可以讓我們理解並重現問題,然後我們可以告訴您如何解決問題。如果輸入是縮進的,並且您通過複製東西,那麼我確信在使用Saxon時,輸出也會縮進,除非您使用像< '。 –