Вертикальный вывод XSL и XML - PullRequest
       0

Вертикальный вывод XSL и XML

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

Я работаю над простым словарем в XML, и теперь я пытаюсь вывести некоторые слова по вертикали, но все они выводятся в строке без пробелов.

Это часть файла XML

<thesaurus>
  <dictionary>
    <language>English</language>
    <word type="1">word 1</word>
    <word type="2">word 2</word>
    <word type="3">word 3</word>
    <word type="4">word 4</word>
    <word type="5">word 5</word>
    <word type="6">word 6</word>
    </dictionary>
</thesaurus>

Это мое первое «почти» решение

  <xsl:template match="/">
    <html>
      <body>

          <xsl:apply-templates select="//word">

          <xsl:sort order="ascending"/>
        </xsl:apply-templates>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>

Это решение выводит только все слова, подобные этому

AgentsColorFoundationsGrainPartialPogotypePretendSilentStrollTender

Моя вторая попытка - что-то вроде этого

 <xsl:for-each select="thesaurus">
         <h1> <xsl:value-of select="//word"/></h1>
               </xsl:for-each>

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

Было бы замечательно с подсказкой:)

Спасибо

1 Ответ

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

Используйте этот шаблон:

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

  <xsl:template match="/">
    <html>
      <body>
        <xsl:apply-templates select="*/*/word">
          <xsl:sort order="ascending"/>
        </xsl:apply-templates>
      </body>
    </html>
  </xsl:template>

  <xsl:template match="word">
    <xsl:value-of select="."/>
    <br/>
  </xsl:template>

</xsl:stylesheet>

Вывод:

<html>
  <body>word 1<br />word 2<br />word 3<br />word 4<br />word 5<br />word 6<br /></body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...