Formatierte Anzeige
Thoralf
- xml
Hallo,
Also eins vorweg, ich bin so ziemlicher Neuling was XML anbelangt.
Folgendes *.xml-File möchte ich zur Anzeige bringen:
<?xml version="1.0"?>
<?xml-stylesheet href="ausgabe.xsl" type="text/xsl" ?>
<!DOCTYPE Importfile [
<!ELEMENT Importfile (Table*)>
<!ELEMENT Table (TableName, Records)>
<!ELEMENT Records (Record*)>
<!ELEMENT Record (Fields)>
<!ELEMENT Fields (Field*)>
<!ELEMENT Field (FieldName, FieldValue)>
<!ELEMENT FieldName (#PCDATA)>
<!ELEMENT FieldValue (#PCDATA)>
<!ELEMENT TableName (#PCDATA)>
]>
<Importfile>
<Table>
<TableName>Tabellenkopf</TableName>
<Records>
<Record>
<Fields>
<Field>
<FieldName>Zelle_1</FieldName>
<FieldValue>Zelle_2</FieldValue>
<FieldName>Zelle_1</FieldName>
<FieldValue>Zelle_2</FieldValue>
</Field>
</Fields>
</Record>
</Records>
</Table>
<Table>
<TableName>Tabellenkopf</TableName>
<Records>
<Record>
<Fields>
<Field>
<FieldName>Zelle_1</FieldName>
<FieldValue>Zelle_2</FieldValue>
<FieldName>Zelle_1</FieldName>
<FieldValue>Zelle_2</FieldValue>
</Field>
</Fields>
</Record>
</Records>
</Table>
.
.
.
</Importfile>
Das ganze soll dann in etwa so aussehen:
Tabellenkopf
Zelle_1 Zelle_2
Tabellenkopf
Zelle_1 Zelle_2
usw.
Kann mir da diesbezügleich jemand ne Starthilfe geben?
Das was ich da bisher so zurechtgecodet habe scheint nich so recht zu funktionieren :)
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
xsl:template
<xsl:for-each select="Importfile/Table/Records/Record/Fields/Field">
<TABLE STYLE="border:1px; border-style:solid; border-color:#000000; width:400px">
<TR>
<TD STYLE="column-span:2;">
<xsl:value-of select="TableName" />
</TD>
</TR>
<TR>
<TD STYLE="font-family:Verdana; font-size:9pt; font-weight:bold; width:50%;">
<xsl:value-of select="FieldName" />
</TD>
<TD STYLE="font-family:Verdana; font-size:9pt;">
<xsl:value-of select="FieldValue" />
</TD>
</TR>
</TABLE>
<BR />
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Für Eure Hilfe wär ich sehr dankbar
MfG Thoralf (Dolphi)
Hallo,
Das ganze soll dann in etwa so aussehen:
Tabellenkopf
Zelle_1 Zelle_2
Tabellenkopf
Zelle_1 Zelle_2
usw.
Kann mir da diesbezügleich jemand ne Starthilfe geben?
Das was ich da bisher so zurechtgecodet habe scheint nich so recht zu funktionieren :)
Probiere es mal so:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- das ist der veraltete Namespace des MSXML 2.x-Parsers - installiere besser Version 3 oder 4
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output
method="html"
doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
doctype-system="http://www.w3.org/TR/html401/loose.dtd"
encoding="ISO-8859-1"
version="1.0"
indent="yes"
/>
<xsl:template match="/">
<HTML>
<HEAD>
<TITLE>Test</TITLE>
</HEAD>
<BODY>
<xsl:for-each select="Importfile/Table">
<TABLE STYLE="border:1px; border-style:solid; border-color:#000000; width:400px">
<TR>
<TD STYLE="column-span:2;">
<xsl:value-of select="TableName" />
</TD>
</TR>
<TR>
<TD STYLE="font-family:Verdana; font-size:9pt; font-weight:bold; width:50%;">
<xsl:value-of select="Records/Record/Fields/Field/FieldName" />
</TD>
<TD STYLE="font-family:Verdana; font-size:9pt;">
<xsl:value-of select="Records/Record/Fields/Field/FieldValue" />
</TD>
</TR>
</TABLE>
<BR />
</xsl:for-each>
</BODY>
</HTML>
</xsl:template>
</xsl:stylesheet>
Als Ergebnis habe ich diesen HTML-Code erhalten:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<TITLE>Test</TITLE>
</HEAD>
<BODY>
<TABLE STYLE="border:1px; border-style:solid; border-color:#000000; width:400px">
<TR>
<TD STYLE="column-span:2;">Tabellenkopf</TD>
</TR>
<TR>
<TD STYLE="font-family:Verdana; font-size:9pt; font-weight:bold; width:50%;">Zelle_1</TD>
<TD STYLE="font-family:Verdana; font-size:9pt;">Zelle_2</TD>
</TR>
</TABLE>
<BR>
<TABLE STYLE="border:1px; border-style:solid; border-color:#000000; width:400px">
<TR>
<TD STYLE="column-span:2;">Tabellenkopf</TD>
</TR>
<TR>
<TD STYLE="font-family:Verdana; font-size:9pt; font-weight:bold; width:50%;">Zelle_1</TD>
<TD STYLE="font-family:Verdana; font-size:9pt;">Zelle_2</TD>
</TR>
</TABLE>
<BR>
</BODY>
</HTML>
MfG, Thomas
Hallo Thomas,
hm scheinbar hab ich hier nen schwerwiegendes Problem.
Bei mir wird gar kein HTML-Code erzeugt, sondern als Quelltext bekomme ich das *.xml-File angezeigt.
Und zur Ansicht kommt bei mir im IE 6.0 unter WinXP nur der Tabellenkopf.
MfG Thoralf
Hallo,
hm scheinbar hab ich hier nen schwerwiegendes Problem.
Bei mir wird gar kein HTML-Code erzeugt, sondern als Quelltext bekomme ich das *.xml-File angezeigt.
Der IE transformiert intern und zeigt die HTML-Ansicht, aber in der Quellcodeansicht ist nach wie vor XML-Code zu sehen.
Transformiere Dein Dokument alternativ mit "Instant SAXON", http://sourceforge.net/projects/saxon:
Aufruf in einer DOS-Box:
saxon -o ausgabe.html datei.xml datei.xsl
oder
saxon datei.xml datei.xsl > ausgabe.html
Oder probiere mal dieses Upload-Formular, welches die Dateien zur Transformation an den Sablotron-Prozessor uebergibt. Dann wird auch der generierte HTML-Code angezeigt:
http://ktd.et.fh-merseburg.de/~tm/PHP/xslt/
Und zur Ansicht kommt bei mir im IE 6.0 unter WinXP nur der Tabellenkopf.
Das deutet auf eine alte MSXML-Version hin (vermutlich 2.5). Der IE 6 sollte eigentlich den 3er mitbringen und beim Testen mit diesem unter IE 5.5 und 6.0 hat das bei mir auch funktioniert.
MfG, Thomas
Hallo Thoralf,
<TD STYLE="column-span:2;">
ist zwar nett, aber noch nicht wirklich zu empfehlen.
a) ist nur in der http://www.w3.org/TR/css3-multicol/ vorhanden,
b) welche browser kennen es? (Dein IE6 kennst es auch nicht)
--
für den fall, dass du mehr als 2 zellen pro zeile hast:
----------
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<head></head>
<body>
<xsl:for-each select="Importfile/Table">
<xsl:variable name="columns" select="count(Records/Record/Fields/Field/FieldName)" />
<TABLE STYLE="border:1px; border-style:solid; border-color:#000000; width:400px">
<TR>
<TD align="center" colspan="{$columns}">
<xsl:value-of select="TableName" />
</TD>
</TR>
<!-- ab hier wie schon Thomas gespostet hatte -->
<TR>
<TD STYLE="font-family:Verdana; font-size:9pt; font-weight:bold; width:50%;">
<xsl:value-of select="Records/Record/Fields/Field/FieldName" />
</TD>
<TD STYLE="font-family:Verdana; font-size:9pt;">
<xsl:value-of select="Records/Record/Fields/Field/FieldValue" />
</TD>
</TR>
</TABLE>
</xsl:for-each>
<BR />
</body>
</html>
</xsl:template>
</xsl:stylesheet>
-------------
Grüße
Thomas