Hallo zusammen,
ich habe in einer xml-Datei zwei tabellen. Die Tabellen haben gleiche Attribute, nur dass die Werte unterschiedlich sein können.
Ich habe es auch schon geschafft die beiden Tabellen zu vergleichen, doch leider noch nicht so, dass sie mit einer anderen Farbe hervorgehoben werden.
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="test.xsl"?>
<modul name="webtest">
<tabelle name="test">
<attribut1 name="feld1">test</attribut1>
<attribut2 name="feld2">test</attribut2>
<attribut3 name="feld3">asdf</attribut3>
<attribut4 name="feld4">test</attribut4>
</tabelle>
<tabelle2 name="test">
<attribut1 name="feld1">test</attribut1>
<attribut2 name="feld2">test</attribut2>
<attribut3 name="feld3">test</attribut3>
<attribut4 name="feld4">test</attribut4>
</tabelle2>
Nun sollte attribut3 mit dem Namen feld3 farblich hervorgehoben werden.
Hier noch die xsl-Datei:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="ISO-8859-1"/>
<xsl:template match="/">
<html>
<head>
<title>Vergleichs Test</title>
<style type="text/css" media="screen">
table {
background-color: lightblue;
margin: 1em;
padding: 1em;
border: 1px black
}
caption {
font-size: large;
background-color: lightblue;
border-bottom: 3px black }
tr:nth-of-type(even) {
background-color:#ccc;
}
tr.markiert {
background-color: yellow;
}
</style>
</head>
<body bgcolor="#ffffff">
<table width="180" border="1" cellspacing="2" cellpadding="0">
<caption><b>Test</b> </caption>
<xsl:call-template name="tabelle"/>
</table>
</body>
</html>
</xsl:template>
<xsl:template name="tabelle">
<xsl:for-each select="//tabelle[1]/*">
<tr>
<td>
<xsl:value-of select="@name"/>
</td>
<td>
<xsl:value-of select="current()"/>
</td>
<td>
<xsl:value-of select="/modul/tabelle2/*[local-name()=name(current())][@name=current()/attribute::name]"/>
<xsl:if test="/modul/tabelle2/*[local-name()=name(current())][@name=current()/attribute::name]!=current()">
Ungleich
</xsl:if>
</td>
</tr>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Dieser Code legt die Tabellen nebeneinander und vergleicht sie. Wie kann ich sie nun aber farblich hervorheben? Ich dachte mir, dass ich evtl mit javascript etwas erreichen könnte. Leider hab ichs nicht hingekriegt. Wie geht das? ist es überhaupt mit xml/xsl möglich?
Freundliche Grüsse