Andy: Werte abfragen

Hallo,
Ich habe innerhalb eines XML Documents diese Situation.

  • <ProductInfo>
     - <Request>
     - <Args>
       <Arg value="All" name="offer" />
       <Arg value="us" name="locale" />
       <Arg value="1" name="page" />
       <Arg value="kawasaki gpz" name="KeywordSearch" />
       <Arg value="dfgdfg" name="dev-t" />
       <Arg value="dfgdfg" name="t" />
       <Arg value="xml" name="f" />
       <Arg value="photo" name="mode" />
       <Arg value="lite" name="type" />
       <Arg value="pmrank" name="sort" />
       </Args>
       </Request>
       </ProductInfo>

Wenn ich nun den Wert für "KeywordSearch" auslesen will mache ich das innerhalb des XSL-Templates so:

<xsl:value-of select="/ProductInfo/Request/Args/Arg[4]/@value"/>

Leider bekomme ich als Ergebniss immer nur das erste Suchwort geliefert, in diesem Falle "kawasaki". Ich möchte aber als Ergebniss "kawasaki gpz" geliefert bekommen.
Muß ich anders vorgehen ?

Danke schonmal
Andy

  1. Hallo,
    Müsste normalerweise so gehen

    <xsl:value-of select="/ProductInfo/Request/Args/Arg[4]/@value"/>

    Probier doch mal mit
    <xsl:value-of select="/ProductInfo/Request/Args/Arg[4]/@value/text()"/>

    Gruß Uli

    1. Probier doch mal mit
      <xsl:value-of select="/ProductInfo/Request/Args/Arg[4]/@value/text()"/>

      Gruß Uli

      Hi Uli
      Dank dir für die Antwort.
      Wenn ich deinen Vorschlag benutze bekomme ich gar kein Ergebniss

      Gruß Andy

  2. Hallo,

    Wenn ich nun den Wert für "KeywordSearch" auslesen will mache ich das innerhalb des XSL-Templates so:

    <xsl:value-of select="/ProductInfo/Request/Args/Arg[4]/@value"/>

    Leider bekomme ich als Ergebniss immer nur das erste Suchwort geliefert, in diesem Falle "kawasaki". Ich möchte aber als Ergebniss "kawasaki gpz" geliefert bekommen.
    Muß ich anders vorgehen ?

    Nein, eigentlich ist das richtig. Welcher XSL-Parser benützt du? Denn ein vernünftiger dürfte den Attributwert nicht "unterschlagen".
    Tipp am Rande:
    Du seleltierst das 4. <Arg> Element, aber ist dasr immer der "KeywordSearch"? Also:
    <xsl:value-of select="/ProductInfo/Request/Args/Arg[@name = 'KeywordSearch']/@value"/>

    Grüße
    Thomas

    1. Tipp am Rande:
      Du seleltierst das 4. <Arg> Element, aber ist dasr immer der "KeywordSearch"? Also:
      <xsl:value-of select="/ProductInfo/Request/Args/Arg[@name = 'KeywordSearch']/@value"/>

      Hallo Thomas,
      Danke für deinen Tip. Ich hatte mir schon gedacht das man Werte auch nach Ihrem Namen abfragen kann, doch nirgendwo konnte ich dieses nachlesen. Insofern also wieder etwas gelernt.

      btw: den Fehler hab ich übrigens gefunden. Es lag überhaupt nicht an XML oder XSL, sondern an meinem PHP Script das die übergebenen Parameter an die URL nicht richtig parsen konnte. Da ich von PHP nur wenig bis gar keine Ahnung habe, habe ich ein Script in Perl geschrieben, das den gleichen Zweck erfüllt aber die Parameter richtig parst, und siehe da es funzt.

      Aber wie gesagt, dein Tip hat ein kleines Verständnissproblem bei mir beseitigt.