XSLT элементы пробелов становятся урезанными - PullRequest
1 голос
/ 22 декабря 2010

Быстрый вопрос.У меня есть некоторые XML

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

Когда я применяю XSLT к этому, первый узел обрезается в ничто.Второй в порядке, и завершающий пробел не обрезается, потому что я сохраняю пробел:

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

Мой вопрос: почему первый узел обрезается?Как бы абсурдно это ни звучало, пробельные узлы важны и их необходимо поддерживать.Я использую Xalan 2.7.1.Так работает XSL или есть способ обойти это?

Спасибо!

1 Ответ

2 голосов
/ 22 декабря 2010

Используйте эту директиву XSLT :

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

Если это не помогает, это означает, что анализатор XML удаляет текстовые узлы только для пробелов.

Чтобы предотвратить это, в документе XML используйте атрибут xml:space="preserve":

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