Avatar billede simonvalter Praktikant
04. februar 2003 - 12:27 Der er 7 kommentarer og
1 løsning

xsl ... xml

hej jeg sider og leger lidt med noget xml/xsl
og jeg kan ikke komme videre

her er min xsl fil http://gbit.dk/phpsysinfo.xsl
og jeg tager xml output fra phpsysinfo

det er sådan en xml fil jeg henter data fra.
http://phpsysinfo.sourceforge.net/phpsysinfo/?template=xml

mit problem er at at hvis jeg f.eks skriver det her så kommer den kun med det første device ..

hvad gør jeg forkert .. jeg ved det er muligt at få listet alle devices .. men hvordan .. og er det muligt at vælge hvilke af dem jeg vil liste. ?

                    <tr>
                        <th align="left"><font size="3" >HD</font></th>
                    </tr>
                    <xsl:for-each select="phpsysinfo/Hardware/IDE">
                        <tr>
                            <td>
                                <font size="2" ><xsl:value-of select="Device"/></font>
                            </td>
                            <td>
                                <font size="2" ><xsl:value-of select="Mhz"/>Mhz</font>
                            </td>
                        </tr>
                    </xsl:for-each>
Avatar billede atoft Nybegynder
04. februar 2003 - 13:07 #1
Er det kun devices under IDE du vil have med?
Avatar billede simonvalter Praktikant
04. februar 2003 - 13:11 #2
nej gerne alle .. men jeg det ville være rart at vide om jeg også kan vælge hvilke af dem jeg vil bruge ...
Avatar billede atoft Nybegynder
04. februar 2003 - 13:17 #3
Hvis du vil have dem alle skal du blot skrive ændre din xsl:for-each til

<xsl:for-each select="phpsysinfo//Device"> og din

value-of ændres til

<xsl:value-of select="."/>

Og ja det kan godt lade sig gøre at udvælge enkelte devices med en ændring af xsl:for-each

<xsl:for-each select="phpsysinfo/PCI/Device">

Bemærk af din <xsl:value-of select="Mhz"/> ikke længere giver mening nu.

/atoft
Avatar billede simonvalter Praktikant
04. februar 2003 - 13:41 #4
ok det hjalp mig lidt

nu har jeg
                    <tr>
                        <th align="left"><font size="3" >HD</font></th>
                    </tr>
                    <xsl:for-each select="phpsysinfo/Hardware/IDE/Device">
                        <tr>
                            <td>
                                <font size="2" ><xsl:value-of select="."/></font>
                            </td>
                        </tr>
                    </xsl:for-each>


og det giver mig

HD
acd0: CD-W516EB
ad0: FUJITSU MPF3102AT (Capacity: 10.01 GB)
ad4: Maxtor 34098H4 B (Capacity: 40.03 GB)
ad5: IC35L040AVER07-0 (Capacity: 40.22 GB)
ad6: IC35L040AVVA07-0 (Capacity: 40.22 GB)
ad7: IC35L040AVER07-0 (Capacity: 40.22 GB)

men kan jeg på nogen måde vælge feks kun at vise device 4 i rækken .. eller skal jeg sige hvor device = acd0: CD-W516EB ?
Avatar billede atoft Nybegynder
04. februar 2003 - 13:46 #5
Du kan godt lave en

<xsl:if test="position() = 4">
    <tr>
        <td>
              <font size="2" ><xsl:value-of select="."/></font>
        </td>
    </tr>
</xsl:if>

Men kan du være sikker på rækkefølgen ?

/atoft
Avatar billede simonvalter Praktikant
04. februar 2003 - 13:51 #6
næ det har du nok ret i ;)

men mange tak for hjælpen det har givet mig lidt mere forståelse.
Avatar billede atoft Nybegynder
04. februar 2003 - 14:01 #7
Ellers spøger du jo bare igen :-)

/atoft
Avatar billede atoft Nybegynder
04. februar 2003 - 14:01 #8
spøger = spørger :-)
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