Attribut mittels XSLT ersetzen

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

  • Attribut mittels XSLT ersetzen

    Hallöchen,

    ich habe hier folgende Aufgabe: Gegeben ist eine XML-Datei mit Namen und Büchern von verschiedenen Autoren.

    Quellcode

    1. <Buchliste>
    2. <Autor>
    3. <Name>Peter</Name>
    4. <Buch>ABC</Buch>
    5. <Buch>DEF</Buch>
    6. </Autor>
    7. <Autor>
    8. <Name>Marie</Name>
    9. <Buch>Katze</Buch>
    10. <Buch>Hund</Buch>
    11. </Autor>
    12. </Buchliste>
    Alles anzeigen


    Der User soll nun ein Buch auswählen und den Autor des Buches ändern können. Meine erste Frage an dieser Stelle wäre: Kann ich überhaupt irgendwelche Werte/Variablen aus meiner C++-Datei (bzw von stdin) an xsl-Dateien übergeben? Gibt es eine Möglichkeit, die xsl-Datei mit einem Parameter aufzurufen, dessen Wert dann in eine Variable geschrieben wird? Ich bin schon so weit gekommen, dass es hierfür xsl : param gibt, aber so richtig klar ist mir die Nutzung in diesem Zusammenhang nicht.

    Zweitens: Wie realisiere ich einen solchen Algorithmus in XSL:
    Buch suchen -> Namen des Autors dazu finden -> Wert von <Name> ändern?

    Für mich ist das totales Neuland und ich hab schon herumprobiert und gegoogelt, ob es nicht vielleicht schon irgendwo eine passende Vorlage gibt, aber es will nicht so recht klappen. Dafür habe ich unter anderem das hier angewendet:

    XML-Quellcode

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    3. <xsl:output encoding="UTF-8" version="1.0" indent="yes" method="xml"/>
    4. <xsl:template match="@*">
    5. <xsl:choose>
    6. <xsl:when test="Buchtitel">
    7. <Name>Klaus</Name>
    8. </xsl:when>
    9. </xsl:choose>
    10. </xsl:template>
    11. </xsl:stylesheet>
    Alles anzeigen


    Ich habe noch einige andere Varianten versucht, die ich auf Grund mangelnder Funktionalität wieder verworfen habe (Schleifen usw) und bin mittlerweile zumindest so weit, dass er mir nur die Namen und Bücher ausgibt. Habt ihr einen Tipp für mich?

    Vielen lieben Dank für eure Hilfe, ich weiß, mit ein bisschen mehr Recherche würde ich sicher auch irgendwann drauf kommen, leider mangelt es mir an Zeit dafür :( Ich würde nicht fragen, wenn es nicht eilig wäre.

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