XSL игнорирует мои пробелы даже с тегом

Я делаю заголовок в моем коде XSL, который включает в себя несколько полей информации, т. е. "имя: Боб Дата рождения: 1 января 1900 года" и т. д. Я вложил их в такие теги как:

<xsl:text>    Gender: Male    </xsl:text> 

но на странице пробелы вокруг Gender / Male игнорируются. Я что-то упускаю?

спасибо заранее.

5 ответов


если вы хотите вывести текстовый файл, вы должны указать <xsl:output method="text"/> как дитя <xsl:stylesheet> элемент.

при обработке вывода Как HTML парсер может упаковать ваши пробелы, если вывод HTML с неразрывными пробелами-это то, что вы хотите, вы можете использовать &#160; неразрывный космический объект (обратите внимание, что &nbsp; может не работать, так как это не XML-объект, если вы не объявите его самостоятельно).


Вам может понадобиться использовать...

<xsl:text xml:space="preserve">    Gender: Male    </xsl:text>

это не строгий вопрос XSLT, так как XSLT не съедает ваше пустое пространство. Эта трансформация

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:template match="/">
    <foo>
      <xsl:text>    Gender: Male    </xsl:text>
    </foo>
  </xsl:template>
</xsl:stylesheet> 

дает

<?xml version="1.0" encoding="UTF-8"?>
<foo>    Gender: Male    </foo>

вы используете HTML в качестве вывода? Затем используйте non breaking space для пробелов.


просто использовать

  &#160;Gender: Male&#160; 

Он представляет пробелы в xsl, как

 &nbsp;Gender:Male&nbsp; 

в html


вам нужно добавить &nbsp; вместо пробелов. Чтобы получить более 1 места

<xsl:text><![CDATA[&nbsp;&nbsp;&nbsp; Gender: Male &nbsp;&nbsp;&nbsp;]]></xsl:text>