Avatar billede flashit Nybegynder
11. januar 2008 - 20:19 Der er 5 kommentarer og
1 løsning

Udskrive i 2 rækker

Hej e

Jeg har en xsl fil som udskriver min xml som html.
Det den gør følgende.

Nummer 1 i liste bliver udskrevet forskelligt fra alle de andre. Virker find.

Alle de andre bliver udskrevet under hinanden, men jeg vil gerne have den til at udskrive den i 2 rækker.

Som der er nu ser det sådanne ud.
1
2
3
4
5
Og jeg vil gerne have den til dette:

1
2    3
4    5

Håber det giver mening.

Min test kode er her.

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/">
    <html>
      <body>
        <xsl:for-each select="catalog/cd">
          <xsl:choose>
            <xsl:when test="position() = 1">
              <table class="style1">
                <tr>
                  <td rowspan="3" width="80" valign="top" bgcolor="#ff00ff">
                    billede"
                  </td>
                  <td>
                    <xsl:value-of select="title"/>
                  </td>
                </tr>
                <tr>
                  <td>
                    <xsl:value-of select="artist"/>
                    Dato Email
                  </td>
                </tr>
                <tr>
                  <td>
                    View full blog article
                  </td>
                </tr>
              </table>
              <xsl:value-of select="artist"/>
            </xsl:when>
            <xsl:otherwise>
              <table class="style1">
                <tr>
                  <td rowspan="3" width="80" valign="top">
                    billede
                  </td>
                  <td>
                    <xsl:value-of select="title"/>
                  </td>
                </tr>
                <tr>
                  <td>
                    <xsl:value-of select="artist"/>
                    Dato Email
                  </td>
                </tr>
                <tr>
                  <td>
                    View full blog article
                  </td>
                </tr>
              </table>
            </xsl:otherwise>
          </xsl:choose>
        </xsl:for-each>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>

Xml’en er her (også test)

<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet type="text/xsl" href="test.xsl"?>

<catalog>
  <cd>
    <title>Empire Burlesque</title>
    <artist>Bob Dylan</artist>
    <country>USA</country>
    <company>Columbia</company>
    <price>10.90</price>
    <year>1985</year>
  </cd>
  <cd>
    <title>Hide your heart</title>
    <artist>Bonnie Tyler</artist>
    <country>UK</country>
    <company>CBS Records</company>
    <price>9.90</price>
    <year>1988</year>
  </cd>
  <cd>
    <title>Greatest Hits</title>
    <artist>Dolly Parton</artist>
    <country>USA</country>
    <company>RCA</company>
    <price>9.90</price>
    <year>1982</year>
  </cd>
</catalog>
Avatar billede flashit Nybegynder
11. januar 2008 - 21:33 #1
Har levet det med <DIV> det var til at style med css. :-)
Avatar billede arne_v Ekspert
11. januar 2008 - 22:51 #2
Jeg har ellers 2 XSLT forslag.
Avatar billede arne_v Ekspert
11. januar 2008 - 22:51 #3
Den grimme med et ulukket TR tag:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/">
    <html>
      <body>
        <table border="1">
        <xsl:for-each select="catalog/cd">
          <xsl:choose>
            <xsl:when test="position() = 1">
              <tr><td>
              <table border="1" class="style1">
                <tr>
                  <td rowspan="3" width="80" valign="top" bgcolor="#ff00ff">
                    billede
                  </td>
                  <td>
                    <xsl:value-of select="title"/>
                  </td>
                </tr>
                <tr>
                  <td>
                    <xsl:value-of select="artist"/>
                    Dato Email
                  </td>
                </tr>
                <tr>
                  <td>
                    View full blog article
                  </td>
                </tr>
              </table>
              </td></tr>
            </xsl:when>
            <xsl:otherwise>
              <xsl:choose><xsl:when test="position() mod 2 = 0"><xsl:element name="tr"/></xsl:when></xsl:choose>
              <td>
              <table border="1" class="style1">
                  <tr>
                  <td rowspan="3" width="80" valign="top">
                    billede
                  </td>
                  <td>
                    <xsl:value-of select="title"/>
                  </td>
                </tr>
                <tr>
                  <td>
                    <xsl:value-of select="artist"/>
                    Dato Email
                  </td>
                </tr>
                <tr>
                  <td>
                    View full blog article
                  </td>
                </tr>
              </table>
              </td>
            </xsl:otherwise>
          </xsl:choose>
        </xsl:for-each>
        </table>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>
Avatar billede arne_v Ekspert
11. januar 2008 - 22:52 #4
Lidt paenere:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/">
    <html>
      <body>
        <xsl:apply-templates select="catalog/cd[1]">
          <xsl:with-param name="color" select="'#ff00ff'"/>
        </xsl:apply-templates>
        <table border="1">
        <xsl:for-each select="catalog/cd[position() mod 2 = 0]">
          <tr>
          <td>
          <xsl:apply-templates select=".">
            <xsl:with-param name="color" select="'#ffffff'"/>
          </xsl:apply-templates>
          </td>
          <td>
          <xsl:apply-templates select="following-sibling::cd[1]">
            <xsl:with-param name="color" select="'#ffffff'"/>
          </xsl:apply-templates>
          </td>
          </tr>
        </xsl:for-each>
        </table>
      </body>
    </html>
  </xsl:template>
  <xsl:template match="cd">
    <xsl:param name="color"/>
      <table border="1" class="style1">
          <tr>
          <td rowspan="3" width="80" valign="top">
            <xsl:attribute name="bgcolor"><xsl:value-of select="$color"/></xsl:attribute>
            billede
          </td>
          <td>
            <xsl:value-of select="title"/>
          </td>
        </tr>
        <tr>
          <td>
            <xsl:value-of select="artist"/>
            Dato Email
          </td>
        </tr>
        <tr>
          <td>
            View full blog article
          </td>
        </tr>
      </table>
  </xsl:template>
</xsl:stylesheet>
Avatar billede flashit Nybegynder
11. januar 2008 - 23:14 #5
Hej Arne

Den sidste ser pænt fed ud.. Den måde skal jeg vist have kigget på.
Vil du ikke have nogle P for ulejligheden?

og tak for hjælpen, igen igen :-)
Avatar billede arne_v Ekspert
12. januar 2008 - 03:14 #6
gerne
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester