Avatar billede sph1nx Nybegynder
05. april 2008 - 20:24 Der er 6 kommentarer og
1 løsning

hente både attributter og "value" fra XML

sidder med følgende XML dokument :

<recipes>
<recipe>
  <title>1</title>
  <ingredient amount="3" unit="cups">Flour</ingredient>
  <ingredient amount="0.25" unit="ounce">Yeast</ingredient>
  <ingredient amount="1.5" unit="cups" state="warm">Water</ingredient>
  <ingredient amount="1" unit="teaspoon">Salt</ingredient>
  <instructions>
    <step>Mix all ingredients together.</step>
  </instructions>
  <picture>c:\hej</picture>
</recipe>
</recipes>

og følgende XSL stylesheet :

<xsl:template match="/">
  <html>
  <body>
    <xsl:for-each select="recipes/recipe">
      <h3><xsl:value-of select="title"/></h3>
      <xsl:for-each select="ingredient">
        <xsl:value-of select="@amount"/> - <xsl:value-of select="@unit"/> - Ingredient "NAVN" her ><br></br>
        </xsl:for-each>
    </xsl:for-each>
  </body>
  </html>
</xsl:template>
</xsl:stylesheet>

der hvor der står Ingredient navn her, der skulle jeg gerne have hentet, f.eks Flour ud for den første ingredient osv... men hvordan gør jeg det, har prøvet med <xsl:value-of select="ingredient"/> men det viste ikke noget.
Avatar billede arne_v Ekspert
05. april 2008 - 20:41 #1
Prøv:

<xsl:value-of select="."/>
Avatar billede sph1nx Nybegynder
05. april 2008 - 20:53 #2
yes sir, det virkede...

nu er jeg så i mellem tiden løbet ind i et andet problem.. det er samme xml dokument som før, bare med 2 ekstra "recipes", hvor den <instructions> ser sådan ud

    <instructions>
      <step>Mix all ingredients together.</step>
      <step>Knead thoroughly.</step>
      <step>Cover with a cloth, and leave for one hour in warm room.</step>
      <step>Knead again.</step>
      <step>Place in a bread baking tin.</step>
    </instructions>

altså med flere steps, men det er kun det første step der bliver skrevet ud med dette XSL :

    <xsl:for-each select="recipe">
   
      <h3><xsl:value-of select="title"/></h3>
     
      <xsl:for-each select="ingredient">
        <xsl:value-of select="@amount"/> - <xsl:value-of select="@unit"/> - <xsl:value-of select="."/><br></br>
        </xsl:for-each>
       
        <xsl:for-each select="instructions">
        <xsl:value-of select="step"/><br></br>
        </xsl:for-each>
       
    </xsl:for-each>   
  </body>
  </html>
Avatar billede sph1nx Nybegynder
05. april 2008 - 20:54 #3
hov, glemte at skrive : "smid et svar!"
Avatar billede arne_v Ekspert
05. april 2008 - 21:58 #4
Jeg tror at du bliver nødt til at for-each'e alle step taggene.

Og svar.
Avatar billede sph1nx Nybegynder
05. april 2008 - 22:13 #5
prøver jeg
Avatar billede arne_v Ekspert
05. april 2008 - 22:23 #6
<xsl:for-each select="instructions/step">
        <xsl:value-of select="."/><br></br>
        </xsl:for-each>

ser ud til at virke
Avatar billede sph1nx Nybegynder
06. april 2008 - 11:45 #7
det gør det også, takker..
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