XSLT --> wenn ein Element nicht in XML-Quelldatei ist

oraclin25

Erfahrenes Mitglied
#1
Hallo zusammen,

Ich habe folgenden XSLT-Stylesheet:
Code:
...
...
<xsl:value-of select="Tag/KindTag"/><xsl:text>"</xsl:text>
...
...
Die Frage ist ganz simpel:
Was ist wenn es in der zu verarbeitende XML-Datei weder den Tag "Tag" noch "KindTag" gibt. Meckert der XSLT-Prozessor? Kommt ein NULL raus? Oder wird es einfach nicht beachtet?

Vielen Dank.

Schöne Grüße aus Rheinland,

Eure Ratna:)
 

darksider3

dark-Linux-sider
#2
Heyho,
Nope, der XSLT Prozessor, oder allgemein der Browser wird rummekern. Es ist ja immernoch so, das XSLT nur eine Stylesheet sprache für XML ist, welches automatisch ohne diese Elemente nervt...^^
Weitere Ausführungen...immer wenn benötigt ;)
MfG
 

hela

Premium-User
#3
Heyho,
Nope, der XSLT Prozessor, oder allgemein der Browser wird rummekern. Es ist ja immernoch so, das XSLT nur eine Stylesheet sprache für XML ist, welches automatisch ohne diese Elemente nervt...
Wow, welchen rummeckernden und nervigen XSLT-Prozessor benutzt du? Der scheint sich nicht an die W3C-Empfehlungen zu halten.

Zitat W3C-Recommendation: XPath Version 1.0 (Deutsche, kommentierte Übersetzung), Abschnitt 2.3 Knotentests:
Ein Knotentest, der ein QName ist, ist genau dann erfüllt, wenn der Knotentyp (siehe [5 Datenmodell]) der Hauptknotentyp ist und einen erweiterten Namen besitzt, der gleich dem erweiterten Namen des QName ist. Beispielsweise wählt child :: para die para-Kindelemente des Kontextknotens aus. Falls der Kontextknoten keine para-Kinder besitzt, ist das Ergebnis eine leere Knotenmenge. attribute::href wählt die href-Attribute des Kontextknotens aus. Falls der Kontextknoten keine href-Attribute besitzt, ist das Ergebnis eine leere Knotenmenge.
Aber:
Es ist ein Fehler, wenn der QName ein Präfix enthält, für das es keine Namensraumdeklaration im Kontext des Ausdrucks gibt.
Solche Fragen könnte man m.E. auch ganz leicht selber ausprobieren. Man sollte sich dazu am besten irgendeinen XML-Editor hernehmen und damit experimentieren.
 
Zuletzt bearbeitet: