Doppeltes & bei Webservice-Antwort

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Doppeltes & bei Webservice-Antwort

    Hallo zusammen!

    Ich brauche unbedingt Hilfe. Ich verwende einen Webservice, der mit auf Anfrage eine Image-URL (generiert aus einer PHP-Datei mit Parametern) zurückliefert, welche ich gerne per XSL in HTML einbetten will in der Form:

    Quellcode

    1. <img src="{verweis_auf_image_url}" alt="Klick" />
    Leider ist die URL, die der Webservice zurückliefert, schon mit &amp; für das kaufmännische Und-Zeichen versehen. Leider wird das &amp; anscheinend als &amp;amp; eingefügt, sodass ich im Ergebnis ein Bild mit &amp;'s in der Source habe, anstatt mit normalem &-Zeichen.

    Ich habe schon folgendes versucht:

    Quellcode

    1. <img>
    2. <xsl:attribute name="src">
    3. <xsl:value-of select="verweis_auf_image_url" disable-output-escaping="yes" />
    4. </xsl:attribute>
    5. <xsl:attribute name="alt">Klick</xsl:attribute>
    6. </img>
    Leider hat das anscheinend einen Fehler verursacht, sodass er mir - bis auf den HTML-Rahmen (html-/body-Tags usw.) gar nichts mehr angezeigt hatte. Mit 'disable-output-escaping="no"' hat er wieder etwas angezeigt, die Syntax muss also Korrekt sein.

    Nun die Frage an euch: Habt ihr eine Idee, wie man dafür sorgen kann, dass das & aus &amp; nicht erneut beim "Importieren" durch &amp; ersetzt wird, sodass ich die Image-URL wirklich nur mit einfachen &amp;'s habe, welche dann später in &-Zeichen umgewandelt werden, damit ich eine korrekte Bild-Quelle erhalte?

    Ich sollte eventuell noch anmerken, dass ich mich nicht sehr mit XML/XSL(T) usw. auskenne. Arbeite erst seit einigen Tagen damit.

    Vielen Dank im Voraus! :)

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von renet ()

  • Hi!

    Sorry, ich hatte Urlaub bis einschließlich gestern, darum habe ich nicht geschrieben. Welchen Code genau willst du haben?
    Den HTML-Code den er Ausspuckt, wenn ich disable-output-escaping="yes" setze? Oder den Code, den ich in diesem Fall in der .XSL-Datei stehen habe? Oder etwas ganz anderes? Letzterer sieht wie folgt aus:

    Quellcode

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <xsl:stylesheet version="1.0">
    3. <xsl:template match="/">
    4. <xsl:apply-templates />
    5. </xsl:template>
    6. <xsl:template match="items/*/*/return">
    7. <xsl:for-each select="item">
    8. <div id="container">
    9. <div id="product_image">
    10. <a href="spreadshirt_detail.htm?article_id={key}">
    11. <xsl:element name="img">
    12. <xsl:attribute name="src">
    13. <xsl:value-of select="value/image_url" disable-output-escaping="yes" />
    14. </xsl:attribute>
    15. <xsl:attribute name="alt">Klick</xsl:attribute>
    16. </xsl:element>
    17. </a>
    18. </div>
    19. <div id="price">
    20. <p id="price-font">
    21. <xsl:value-of select="value/gross" />&nbsp;<xsl:value-of select="value/currency" />
    22. </p>
    23. </div>
    24. <div id="producttype">
    25. <p>
    26. <xsl:value-of select="value/name" />
    27. </p>
    28. </div>
    29. </div>
    30. </xsl:for-each>
    31. </xsl:template>
    32. </xsl:stylesheet>
    Alles anzeigen

    Vielen Dank!

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von renet ()

  • achso... der sieht ganz einfach aus:

    Quellcode

    1. ... </head>
    2. <body>
    3. </body>
    4. </html>
    und mit disable-output-escaping="no":

    Quellcode

    1. ... </head>
    2. <body>
    3. <div id="container">
    4. <div id="product_image">
    5. <a href="spreadshirt_detail.htm?article_id=3940637"><img src="http://www.spreadshirt.net/image.php?type=image&amp;amp;partner_id=626420&amp;amp;product_id=4414415&amp;amp;img_id=1&amp;amp;size=big&amp;amp;bgcolor_images=white" alt="Klick"></a>
    6. </div>
    7. <div id="price">
    8. <p id="price-font">22.90&nbsp;EUR</p>
    9. </div>
    10. <div id="producttype">
    11. <p>Messenger Bag "Partner" (grau)</p>
    12. </div>
    13. </div>
    14. </body>
    15. </html>
    Alles anzeigen
    stumpfer gehts nicht, er macht einfach... nix. ursprüngliche html-datei ist entsprechend:

    Quellcode

    1. ... </head>
    2. <body>
    3. <rde-dm:include content="spreadshirt.xml" stylesheet="spreadshirt.xsl"/>
    4. </body>
    5. </html>
    wunder dich nicht über rde-dm... das steht in zusammenhang mit dem speziellen server, der hier verwendet wird. darin sollte das problem aber nicht begraben liegen... aus irgend einem grund ist die kombination aus den zwei dateien (xml + xsl) nicht möglich, sobald disable-output-escaping="yes" wie oben angewendet wird... selbst wenn ich das dann (ohne .htm-datei) manuell eingebe, sagter mir dann, dass die datei nicht gefunden wurde. setzte ich d-o-e=no und aktualisiere danach, oh wunder, alles wieder da. ^^

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von renet ()