You are not logged in.

  • Login

Dear visitor, welcome to Coder Forum. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

1

Wednesday, November 30th 2011, 8:46am

Attribut mittels XSLT ersetzen

Hallöchen,

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

Source code

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


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:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:output encoding="UTF-8" version="1.0" indent="yes" method="xml"/>

  <xsl:template match="@*">
  <xsl:choose>
    <xsl:when test="Buchtitel">
      <Name>Klaus</Name>
    </xsl:when>
  </xsl:choose>
  </xsl:template>

</xsl:stylesheet>


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.

This post has been edited 2 times, last edit by "Soffo" (Nov 30th 2011, 10:47am)


Similar threads

Social bookmarks