xslt zum Rausfiltern von Feldern in XML wenn variable gleich false

Wiplash4

Aktives Mitglied
Ich versuche gerade ein Stueck xslt code zu basteln, welcher eine Variable aus dem xml filtert, aber nur dann, wenn eine andere Variable false ist.

XML:
<xmldoc1>
<xmldoc2>
<xmldoc3>
<variable1>#Var1</variable1>
<variable2>#Var2</variable2>
<variable3>#Var3</variable3>
</xmldoc3>
</xmldoc2>
</xmldoc1>

Die Kondition heisst if #Var2==false, dann soll <variable1> rausgefiltert werden.
Der Wert von #Var1 und #Var3 ist egal.

Wenn #Var2=true dann
XML:
<xmldoc1>
<xmldoc2>
<xmldoc3>
<variable1>#Var1</variable1>
<variable2>#Var2</variable2>
<variable3>#Var3</variable3>
</xmldoc3>
</xmldoc2>
</xmldoc1>

Wenn #Var2=false dann
XML:
<xmldoc1>
<xmldoc2>
<xmldoc3>
<variable2>#Var2</variable2>
<variable3>#Var3</variable3>
</xmldoc3>
</xmldoc2>
</xmldoc1>

Weiss da jemand weiter?
 

KonradN

Super-Moderator
Mitarbeiter
Was hast Du denn bisher schon aufgebaut um das XML in ein weiteres XML zu überführen? Hast Du da schon erste Ansätze, bei denen man dann aufzeigen könnte, was Du ggf. prüfen kannst?

Und wie ist der Aufbau exakt? Sind diese xmldoc1 xmldoc2 und xmldoc3 fix? Kommen die ggf, mehrfach vor? Kann die Ebene sich ändern?
Sind die variable1m variable2 und variable3 fix?

Wenn Du bei der Verarbeitung bei xmldoc3 bist, dann kannst Du für jedes Subelement prüfen:
Wenn der TagName (abfragbar mit name() ) nicht variable1 ist oder der Inhalt von ../variable2/text() ungleich false ist, dann schreibst dann das aktuelle Element (dürfte etwas sein wie <xsl:copy-of select="." />).

Generell ist das gar nicht besonders komplex - https://www.data2type.de/xml-xslt-xslfo/xslt/xslt-einfuehrung gibt eine gute Einführung und zeigt auch Beispiele auf wie Bedingungen umgesetzt werden können. Wichtig ist, dass Du da halt mit XPath sehr gut und viel selektieren kannst.

So ganz aus dem Kopf sicher aufschreiben kann ich das auch nicht - da müsste man halt doch konkrete Beispiele haben um das dann ggf. etwas durchzuspielen. Sowas baue ich immer Schritt für Schritt zusammen mit ständigen Tests. Dann sieht man Fehler auch in der Regel sehr schnell.
 

Oneixee5

Top Contributor
So in der Art? Du zeigst dein XSLT ja nicht, man weiß also gar nicht wo du das integrieren willst.
XML:
<xsl:template match="variable1">
    <xsl:if test="../variable2 != 'false'">
        <xsl:copy-of select="node()"/>
    </xsl:if>
</xsl:template>
 

Wiplash4

Aktives Mitglied
Das geht leider nicht. Aber ich weiss, warum es nicht klappt. Es geht um die Abfrage des Wertes von <variable2>.

Daher meine Frage: Wie kann man den Wert von <variable2> in eine <xsl:variable name="v1" kriegen? Damit meine ich #Var2. Wenn also #Var2 gleich 'false' ist, dann soll die Variable v1 auch 'false' sein; wenn #Var2 gleich 'true', dann v1 eben auch 'true'.
 

KonradN

Super-Moderator
Mitarbeiter
Hast du denn mal das /text() angehängt an variable2? Also den XPATH ../variable2/text() statt ../variable2?

Und du kannst doch jederzeit ein Beispiel XML / XSLT bauen, das das Problem aufzeigt. Also sowas wie ein minimales Beispiel!

Und es geht immer darum, wie du Dein XSLT aufbaust. Du kannst alles mit Template Matches machen aber du kannst auch eine Ebene drüber sein um dann die Elemente zu platzieren / zu behandeln. Daher ist es halt so wichtig, dass du uns mehr gibst. Dann kann man auch ein xslt liefern, das wir selbst getestet haben.
 

Wiplash4

Aktives Mitglied
Danke dir KonradN, ich weiss das wirklich zu schaetzen.

Meintest du das hier:
XML:
<xsl:variable name="v1"><xsl:value-of select="boolean(//variable2)"></xsl:variable>

Habe das nach etwas experimentieren rausgefunden.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
W xslt zum Entfernen von unnoetigen Nullkommastellen bei double und float XML & JSON 26
K XML und XSL bzw XSLT XML & JSON 1
R String in XSLT teilen XML & JSON 3
R Script in XSLT einbinden XML & JSON 2
K aus 2XML mache 1XML mit XSLT XML & JSON 4
G xslt Attributwerte von bestimmten Elementen XML & JSON 2
S Xslt Problem XML & JSON 2
K docBook XSLT: HTML Code Snippet in Erzeugte HTML Dokument einfügen XML & JSON 9
T XML + XSLT to PDF mit FOP-Engine XML & JSON 14
E FOP - XSLT Transformierung mit Parametern XML & JSON 4
R '&' Zeichen im XSLT XML & JSON 4
S byte array in xslt umwandeln XML & JSON 7
B XSLT collections ? XML & JSON 2
Raidri JSP Parameter an XSLT übergeben XML & JSON 2
K XSLT Frage XML & JSON 4
S Guter XSLT - Transformator XML & JSON 2
slawaweis Problem mit XSLT (wahrscheinlich ein Bug in Java 6) XML & JSON 16
G XSLT-Stylesheet XML & JSON 2
N jdom - xslt-Verweis in .xml einfügen XML & JSON 3
B anzeigen des XML+ XSLT Ergebnisses XML & JSON 21
N XML zu XSLT XML & JSON 2
N XSLT Testmethoden XML & JSON 2
M Java und XSLT: Performanz-Problem XML & JSON 5
cybermat Ergebnis einer XSLT-Tansformation als Rückgabewert erhalten XML & JSON 4
A Wie hängen SAX/DOM mit XSLT zusammen? XML & JSON 3
Noar XSLT - Element-Wrapping XML & JSON 2
byte XSLT Transformation "ohne Server" XML & JSON 6
byte XSLT Editor ? XML & JSON 7
P XSLT in Java verwenden XML & JSON 7
A XSLT oder Java? / XML-Tools XML & JSON 2
T XSLT Parameter übergeben und Ergebnis empfangen XML & JSON 1

Ähnliche Java Themen

Neue Themen


Oben