<xslt:if test="">

XChris

Erfahrenes Mitglied
Hallo,

ich habe ein XML und bearbeite dieses mit einem xsd. Wenn ein besatimmtes Element einen bestimmten Wert hat, soll es eingefärbt werden.

Mein XML:
HTML:
[...xml code..]
               <report>
			<hostname>owirx1</hostname>
			<description>Test Node 1</description>
			<backup>OK</backup>
			<cpu>OK</cpu>
			<memory>OK</memory>
			<rootmirror>OK</rootmirror>
			<filesystem>OK</filesystem>
		</report>
[...xml code..]

Mein XSD dazu:
HTML:
[... weitere Anweisungen ...]
<xslt:template match="filesystem">
		<td>
			
				<xslt:when test="filesystem='OK'">Alles Prima</xslt:when>
		</td>
	</xslt:template>

Jedoch klappt das so nicht. Es erscheint nicht "Alles Prima". Das XML kann ich nicht ändern. Eine Lösung mit Attributen, wie man es überall im Web findet geht nicht.

Chris
 
Hi.

Also erstmal hast du kein XSD (XML Schema) sondern du hast einen XSL Stylesheet den du mit einem XSL Prozessor verarbeitest.

Wenn der Kontextknoten (durch das template match="") schon filesystem ist, kannst du unterhalb des filesystem Knotens nicht nochmal auf ein filesystem Element zugreifen weil das einfach nicht existiert.

XML:
<xslt:template match="filesystem">
		<td>
				<xslt:when test="text() = 'OK'">Alles Prima</xslt:when>
		</td>
	</xslt:template>
Gruß
 
Zuletzt bearbeitet von einem Moderator:
Zurück