XSLT空白元素被修剪

时间:2010-12-22 18:59:02

标签: xslt whitespace

快速提问。我有一些XML

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

当我将XSLT应用于此时,第一个节点将被修剪为空。第二个很好,并且没有修剪尾随空格,因为我保留了空格:

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

我的问题是为什么第一个节点会被截断?听起来很荒谬,空白节点很重要,需要维护。我正在使用Xalan 2.7.1。这只是XSL的工作方式还是有办法解决这个问题?

谢谢!

1 个答案:

答案 0 :(得分:2)

使用此XSLT指令

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

如果这没有帮助,这意味着XML解析器正在剥离仅空白文本节点。

为防止这种情况,请在XML文档中使用xml:space="preserve"属性:

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