2010-12-22 111 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