Ich muss meine XML-Ausgabe in HTML umwandeln. Ich befolge ein Tutorial unter link text Mein Code ist die Ausgabe von XML-Tags in einer einzigen Zeile ohne Formatierung mit Text-Wert. Ich möchte die Ausgabe als eine HTML-ungeordnete Liste folgende hierarchische Struktur des übergeordneten untergeordneten in XML-Dateiausgabe. HierTransformieren von XML-Daten in HTML mit XSL und PHP: nur Drucken von XML-Tags ohne Formatierung
ist Seitenausgabe:
message msg 1message msg 1-1message msg 1-2message msg 1-2-1message msg 1-2-2message
msg 1-2-2-1message msg 1-2-2-1-1message msg 1-2-2-1-2
& hier Seite Quelle:
<html:ul xmlns:html="http://www.w3.org/1999/xhtml"><html:li>message msg 1</html:li>
<html:ul><html:li>message msg 1-1</html:li><html:li>message msg 1-2</html:li><html:ul>
<html:li>message msg 1-2-1</html:li><html:li>message msg 1-2-2</html:li><html:ul>
<html:li>message msg 1-2-2-1</html:li><html:ul><html:li>message msg 1-2-2-1-1</html:li>
<html:li>message msg 1-2-2-1-2</html:li></html:ul></html:ul></html:ul></html:ul></html:ul>
Hier ist mein Code
php file:
<?php
# LOAD XML FILE
$XML = new DOMDocument();
$XML->load('messages.xml');
# START XSLT
$xslt = new XSLTProcessor();
$XSL = new DOMDocument();
$XSL->load('msg.xsl');
$xslt->importStylesheet($XSL);
print $xslt->transformToXML($XML);
?>
msg.xsl:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:html="http://www.w3.org/1999/xhtml">
<xsl:output omit-xml-declaration="yes" />
<xsl:template match="messages">
<html:ul>
<xsl:apply-templates select="message" />
</html:ul>
</xsl:template>
<xsl:template match="message[message]">
<html:li>message <xsl:value-of select="@msg_id" /></html:li>
<html:ul>
<xsl:apply-templates select="message" />
</html:ul>
</xsl:template>
<xsl:template match="message">
<html:li>message <xsl:value-of select="@msg_id" /></html:li>
<xsl:apply-templates select="message" />
</xsl:template>
</xsl:stylesheet>
messages.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="msg.xsl"?><messages>
<message msg_id="1" emp_msg="msg 1" parent_msg_id="" parent_msg="" depth="0">
<message msg_id="2" emp_msg="msg 1-1" parent_msg_id="1" parent_msg="msg 1" depth="1"/>
<message msg_id="3" emp_msg="msg 1-2" parent_msg_id="1" parent_msg="msg 1" depth="1">
<message msg_id="4" emp_msg="msg 1-2-1" parent_msg_id="3" parent_msg="msg 1-2" depth="2"/>
<message msg_id="5" emp_msg="msg 1-2-2" parent_msg_id="3" parent_msg="msg 1-2" depth="2">
<message msg_id="6" emp_msg="msg 1-2-2-1" parent_msg_id="5" parent_msg="msg 1-2-2" depth="3">
<message msg_id="7" emp_msg="msg 1-2-2-1-1" parent_msg_id="6" parent_msg="msg 1-2-2-1" depth="4"/>
<message msg_id="8" emp_msg="msg 1-2-2-1-2" parent_msg_id="6" parent_msg="msg 1-2-2-1" depth="4"/>
</message>
</message>
</message>
</message>
</messages>
Ist die XML-Datei wegen eines Ausschneiden- und Einfügefehlers nicht gültig oder möchten Sie das ändern? - Letzte Zeile " message" sollte "" lauten. –
Wie sieht Ihre Ausgabe aus und wie soll sie aussehen? –
@Chris Bentley, das ist nur Ausschneiden und Einfügen Fehler. Ich habe den Fehler behoben, weil "loadXML" anstelle von "load" verwendet wurde, um xml doc zu laden. Obwohl es keine Ergebnisse zeigt, nur Tags ausgeben. Ich habe meine Frage aktualisiert. – XCeptable