2010-12-22 159 views
1

快速問題。我有一些XML正在修剪的XSLT空白元素

<someXML> 
    <someNode>  </someNode> 
    <someNode>asdlkjf </someNode> 
</someXML> 

當我將XSLT應用於此時,第一個節點被修剪爲空。第二個是好的,尾隨空白不修剪,因爲我保留空白:

<someXML> 
    <someNode></someNode> 
    <someNode>asdlkjf </someNode> 
</someXML> 

我的問題是,爲什麼是第一個節點越來越截斷?這聽起來很荒謬,但空白節點很重要,需要維護。我正在使用Xalan 2.7.1。這是XSL的工作方式還是有解決方法?

謝謝!

+0

問得好,+1。看到我的答案有兩種可能的解決方案 – 2010-12-22 19:05:40

回答

2

使用此XSLT指令

<xsl:preserve-space elements="*"/> 

如果這沒有幫助,這意味着XML解析器剝離只有空白文本節點。

爲了防止這種情況,在XML文檔中使用xml:space="preserve"屬性:

<someXML> 
    <someNode xml:space="preserve">  </someNode> 
    <someNode>asdlkjf </someNode> 
</someXML> 
+0

+1完整答案。 – 2010-12-22 21:03:34