2010-12-22 5 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. См. Мой ответ на два возможных решения. –

ответ

2

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

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

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

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

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

+1 Полный ответ. –

Смежные вопросы