ALign XML-текст, используя XSLT в выходной HTML - PullRequest
0 голосов
/ 20 февраля 2012

У меня есть такой XML-код

   <catalog>
       <cd>
          <p style="TEXT-ALIGN: center; MARGIN: 0pt; font-size:5">Washington</p>
       </cd>
    </catalog>

, и я использую XSLT, чтобы получить и установить свойство выравнивания текста "washington"

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:output method="html" indent="yes"/>

   <xsl:template match="p">
      <p style="text-align:{substring-before(substring-after(@style,'TEXT-ALIGN:'),';')}">
         <xsl:value-of select="." />
      </p>
   </xsl:template>

</xsl:stylesheet>

, оно работает нормально и дает мне необходимыевыведите <p style="text-align: center">Washington</p>, который выровняет текст по центру

, но если я изменю строку на

 <p align="{substring-before(substring-after(@style,'TEXT-ALIGN:'),';')}">

, чтобы получить это <p align="center">Washington</p>, тогда не работает установка текста в центр, гдея иду не так

1 Ответ

1 голос
/ 20 февраля 2012

Может из-за пробела перед словом "center" в вашем атрибуте выравнивания.

<p align=" center">Washington<p>

Вам нужно использовать команду normalize-space , чтобы удалить этот дополнительный пробел:

<p align="{normalize-space(substring-before(substring-after(@style,'TEXT-ALIGN:'),';'))}">

Это вывело бы следующее

<p align="center">Washington<p>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...