Heim Backend-Entwicklung XML/RSS-Tutorial Verwenden Sie XML und XSL, um dynamische Seiten zu generieren

Verwenden Sie XML und XSL, um dynamische Seiten zu generieren

Mar 30, 2017 pm 05:11 PM

XML (Extensible Markup Language) mag wie eine Art W3C-Standard aussehen – es hat jetzt keine wirklichen Auswirkungen, und selbst wenn es später nützlich sein sollte, wird es lange her sein. Aber tatsächlich wird es bereits genutzt. Warten Sie also nicht, bis XML zu Ihrem bevorzugten HTML-Editor hinzugefügt wurde, um mit der Verwendung zu beginnen. Es kann jetzt verschiedene interne Probleme und B2B-Systemprobleme lösen.

Bei sparks.com verwenden wir XML, um die Datendarstellung zwischen verschiedenen Systemen zu standardisieren, von Java-Objekten bis hin zu HTML-Datenanzeigen.

Insbesondere haben wir festgestellt, dass es einfacher ist, Daten zu teilen und zu bearbeiten, wenn sie in einer sehr einfachen XML-Struktur standardisiert sind. Dabei haben wir viele effektive Möglichkeiten zur Verwendung von XML entdeckt. Im Folgenden wird unsere aktuelle Anwendung im Detail beschrieben.

Standardisierung
Erstellen Sie vor der Verwendung von XML ein XML-Datenformat, das sich von den Informationen unterscheidet, die Sie verwenden möchten.

Dynamisches XML generieren
Das Generieren von HTML aus einer Datenbank ist nicht neu, das Generieren von XML jedoch schon. Hier stellen wir die spezifischen Generierungsschritte vor.

Xsl als Vorlagensprache verwenden
XSL (Extensible Stylesheet Language) ist eine gute Möglichkeit, das XML-Datenanzeigeformat zu definieren. Es ist effektiver, wenn es in mehrere statische Vorlagen geschrieben wird.

HTML generieren
XML plus XSL entspricht HTML. Das klingt vielleicht nicht richtig, aber unsere HTML-Seite, die Benutzer sehen, ist tatsächlich das Ergebnis von XML und XSL.

1. Standardisierung

Die Stärke von XML liegt in seiner Flexibilität. Aber leider ist es manchmal so flexibel, dass man mit einer leeren Seite zurückbleibt und sich fragt, wie man das Problem lösen kann.

In jedem XML-Projekt besteht der erste Schritt darin, ein Standarddatenformat zu erstellen. Dazu müssen Sie folgende Entscheidungen treffen:

• Welche Daten sollen verwendet werden?
• um dom (Document Object Model) oder SAX (vereinfachte API für XML) zum Parsen zu verwenden

Bestimmen Sie die Daten:

Da es kein Standard-XML-Format gibt, steht es Entwicklern frei, ihre eigenen Formate zu entwickeln. Wenn Ihr Format jedoch nur von einer Anwendung erkannt wird, können Sie nur diese Anwendung ausführen, um das Format zu verwenden. Es wäre natürlich hilfreicher, wenn es andere Programme gäbe, die Ihr XML-Format ebenfalls lesen könnten. Wenn ein XML-Format geändert wird, muss möglicherweise auch das System, das es verwendet, geändert werden. Daher sollten Sie das Format so vollständig wie möglich erstellen. Da die meisten Systeme Tags ignorieren, die sie nicht erkennen, besteht die sicherste Möglichkeit, das Format einer XML-Datei zu ändern, darin, Tags hinzuzufügen, anstatt sie zu ändern.

Klicken Sie hier, um ein Beispiel für ein XML-Datenformat zu sehen

Bei sparks.com haben wir uns alle Produktdaten angesehen, die für verschiedene Produktdarstellungen benötigt werden. Obwohl nicht alle Seiten alle Daten verwenden, haben wir ein sehr vollständiges XML-Datenformat entwickelt, das für alle Daten geeignet ist. Beispielsweise werden auf unserer Produktdetailseite mehr Daten angezeigt als auf unserer Produktbrowserseite. Allerdings verwenden wir in beiden Fällen immer noch dasselbe Datenformat, da die XSL-Vorlage jeder Seite nur die Felder verwendet, die sie benötigt.

Ob dtd verwendet werden soll

Bei sparks.com verwenden wir gut organisiertes XML und nicht nur korrektes XML, da ersteres kein dtd erfordert. DTD fügt eine Verarbeitungsebene zwischen dem Klicken des Benutzers und dem Anzeigen der Seite hinzu. Wir fanden, dass diese Ebene zu viel Verarbeitung erforderte. Natürlich ist es immer noch schön, DTDs zu verwenden, wenn man mit anderen Unternehmen im XML-Format kommuniziert. Denn dtd kann sicherstellen, dass die Datenstruktur beim Senden und Empfangen korrekt ist.

Parsing-Engine auswählen

Jetzt sind mehrere Parsing-Engines verfügbar. Für welches Sie sich entscheiden, hängt fast ausschließlich von Ihren Anwendungsanforderungen ab. Wenn Sie sich für die Verwendung von DTD entscheiden, muss die Parsing-Engine in der Lage sein, die Überprüfung Ihres XML durch DTD zu ermöglichen. Sie könnten die Validierung in einem separaten Prozess durchführen, aber das würde sich auf die Leistung auswirken.

Sax und Dom sind zwei grundlegende analytische Modelle. SAX ist ereignisbasiert. Wenn also die XML-Datei analysiert wird, werden Ereignisse an die Engine gesendet. Als nächstes werden die Ereignisse mit der Ausgabedatei synchronisiert. Die DOM-Parsing-Engine erstellt eine hierarchische Baumstruktur für dynamische XML-Daten und XSL-Stylesheets. Durch den zufälligen Zugriff auf den DOM-Baum können XML-Daten bereitgestellt werden, als ob sie durch ein XSL-Stylesheet bestimmt würden. Die Debatte über das SAX-Modell konzentriert sich hauptsächlich auf die übermäßige Speicherreduzierung der DOM-Struktur und die Beschleunigung der Analysezeit des XSL-Stylesheets.

Wir haben jedoch festgestellt, dass viele Systeme, die Sax verwenden, seine Fähigkeiten nicht vollständig ausschöpfen. Diese Systeme verwenden es, um DOM-Strukturen aufzubauen und Ereignisse über DOM-Strukturen zu senden. Bei diesem Ansatz muss das DOM vor der XML-Verarbeitung aus dem Stylesheet erstellt werden, wodurch die Leistung beeinträchtigt wird.

2. Dynamisches XML generieren

Sobald das XML-Format festgelegt ist, benötigen wir eine Methode, um es dynamisch aus der Datenbank zu übertragen.

Das Generieren von XML-Dokumenten ist relativ einfach, da lediglich ein System erforderlich ist, das mit Zeichenfolgen umgehen kann. Wir haben ein System mit Java-Servlet, EnterPRise-Javabean-Server, JDBC und RDBMS (relationales Datenbankverwaltungssystem) erstellt.

• Das Servlet verarbeitet Produktinformationsanfragen, indem es die Aufgabe der Generierung von XML-Dokumenten an das Enterprise Javabean (ejb) verlagert.
• ejb verwendet JDBC, um die erforderlichen Produktdetails aus der Datenbank abzufragen.
• ejb generiert die XML-Datei und übergibt sie an das Servlet.
• Das Servlet ruft die Parsing-Engine auf, um eine HTML-Ausgabe aus XML-Dateien und statischen XSL-Stylesheets zu erstellen.

(Weitere Informationen zur Anwendung von Methoden und Klassen.

Der Code zum Starten des XML-Generierungsprozesses wird in der ejb-Methode platziert. Diese Instanz erstellt sofort einen Stringbuffer, um den generierten XML-String zu speichern. Die drei xml.append()-Variablen, die

folgen, sind selbst Aufrufe anderer Methoden.

Dateiheader generieren
stringbuffer xml = new stringbuffer(); 
xml.append(xmlutils.begindocument("/browse_find/browse.xsl", "browse", request)); 
xml.append(product.toxml()); 
xml.append(xmlutils.enddocument("browse");
out.print(xml.tostring());
Nach dem Login kopieren
Die erste zusätzliche Methode ruft die Klasse xmlutils auf, um den XML-Dateiheader zu generieren. Der Code in unserem Java-Servlet lautet wie folgt:



Dieser Code generiert den XML-Dateiheader. Das -Tag definiert diese Datei als XML-Datei, die Version 1.0 unterstützt. Die zweite Codezeile zeigt auf den Speicherort des richtigen Stylesheets zum Anzeigen der Daten. Als letztes ist das Tag auf Artikelebene enthalten ( in diesem Beispiel). Am Ende der Datei muss nur das Tag geschlossen werden.

public static string begindocument(string stylesheet, string page)
{ 
    stringbuffer xml = new stringbuffer(); 
    xml.append("<?xml version=\"1.0\"?>\n")
    .append("<?xml-stylesheet href=\"")
    .append(stylesheet).append("\"") 
    .append(" type =\"text/xsl\"?>\n"); 
  xml.append("<").append(page).append(">\n"); 
  return xml.tostring(); 
}
Nach dem Login kopieren
>

Füllen Sie die Produktinformationen aus

Nachdem der Dateikopf ausgefüllt ist, ruft die Steuermethode das Java-Objekt auf, um dessen XML zu generieren. In diesem Beispiel wird das Produktobjekt aufgerufen. Das Produktobjekt verwendet zwei Methoden, um seine XML-Darstellung zu generieren. Die erste Methode toxml() erstellt den Produktknoten durch Generieren der Tags Anschließend wird internalxml() aufgerufen, das den erforderlichen Inhalt für die Produkt-XML bereitstellt. internalxml() ist eine Reihe von stringbuffer.append()-Aufrufen. Der Stringbuffer wird ebenfalls in einen String konvertiert und an die Steuermethode zurückgegeben.


Schließen Sie die Datei
Zuletzt wird die Methode xmlutils.enddocument() aufgerufen. Dieser Aufruf schließt (in diesem Fall) das XML-Tag und vervollständigt schließlich die strukturierte XML-Datei. Der gesamte Stringpuffer der Steuermethode wird ebenfalls in einen String konvertiert und an das Servlet zurückgegeben, das die ursprüngliche http-Anfrage verarbeitet hat.

public string toxml()
    { 
    stringbuffer xml = new stringbuffer("<product>\n"); 
    xml.append(internalxml()); 
    xml.append("</product>\n"); 
    return xml.tostring(); 
    }
public string internalxml() 
    { 
    stringbuffer xml = new
    stringbuffer("\t")
        .append(producttype).append("\n"); 
    xml.append("\t").append(idvalue.trim())
        .append("\n"); 
    xml.append("\t").append(idname.trim())
        .append("\n"); 
    xml.append("\t").append(page.trim())
        .append("\n"); 
厖?
      xml.append("\t").append(amount).append("\n"); 
    xml.append("\t").append(vendor).append("\n"); 
    xml.append("\t\n"); 
    xml.append("\t").append(pubdesc).append("\n"); 
    xml.append("\t").append(vendesc).append("\n"; 
厖?
    return xml.tostring(); 
}
Nach dem Login kopieren
3. Verwenden Sie XSL als Vorlagensprache


Um eine HTML-Ausgabe zu erhalten, kombinieren wir die generierte XML-Datei mit der XSL-Vorlage, die steuert, wie die XML-Daten dargestellt werden. Unsere XSL-Vorlagen bestehen aus sorgfältig organisierten XSL- und HTML-Tags.

Beginnen Sie mit dem Erstellen der Vorlage

Der Anfang unserer XSL-Vorlage ähnelt dem folgenden Code. Die erste Codezeile ist erforderlich und definiert diese Datei als XSL-Stylesheet. Das Attribut xmlns:xsl= verweist auf den von dieser Datei verwendeten XML-Namespace und das Attribut version= definiert die Versionsnummer des Namespace. Am Ende der Datei schließen wir das Tag.

Die zweite Codezeile, die mit beginnt, bestimmt den Modus der XSL-Vorlage. Das Match-Attribut ist erforderlich und verweist hier auf das XML-Tag . In unserem System enthält das -Tag das -Tag, das der XSL-Vorlage den Zugriff auf die im eingebetteten Produktinformationen ermöglicht. Auch hier müssen wir das -Tag am Ende der Datei schließen.


Als nächstes werfen wir einen Blick auf gut organisiertes HTML. Da es von der XML-Parsing-Engine verarbeitet wird, muss es allen Regeln gut organisierten XMLs entsprechen. Im Wesentlichen bedeutet dies, dass alle öffnenden Tags über ein entsprechendes schließendes Tag verfügen müssen. Beispielsweise muss das Tag

, das normalerweise nicht geschlossen ist, mit

geschlossen werden.

Im Hauptteil der Vorlage gibt es viele XSL-Tags, die zur Bereitstellung von Logik für die Datenpräsentation verwendet werden. Im Folgenden werden zwei häufig verwendete Tags erläutert. Das Tag

choose

ähnelt dem Anfang einer If-Then-Else-Struktur in herkömmlichen Programmiersprachen. In XSL gibt das Tag „select“ an, dass in dem Teil, in den der Code eintritt, die Zuweisung die Aktion auslöst. Das -Tag mit zugewiesenen Attributen folgt dem Choose-Tag. Bei korrekter Zuweisung wird der Inhalt zwischen dem öffnenden und schließenden Tag von verwendet. Bei falscher Zuweisung wird der Inhalt zwischen dem öffnenden und schließenden Tag von verwendet. Beenden Sie den gesamten Abschnitt mit .
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/xsl/transform" 
version="1.0">
<xsl:template match="basketpage">
<html>
<head>
<title>shopping bag / adjust quantity</title> 
</head>
<body bgcolor="#cccc99" bgproperties="fixed" link="#990000" vlink="#990000">
<br>
?br> </xsl:template> 
</xsl:stylesheet>
Nach dem Login kopieren

In diesem Beispiel überprüft das When-Tag die XML-Datei auf das Mengen-Tag. Wenn das Mengen-Tag ein Fehlerattribut mit dem Wert „true“ enthält, zeigt das Mengen-Tag die unten aufgeführten Tabellenzellen an. Wenn der Wert des Attributs nicht wahr ist, zeigt xsl den Inhalt zwischen den else-Tags an. Wenn im Beispiel unten das Fehlerattribut nicht wahr ist, wird nichts angezeigt.

for-each

kann verwendet werden, um dasselbe Stylesheet auf mehrere Situationen mit ähnlichen XML-Daten anzuwenden. Für uns können eine Reihe von Produktinformationen aus der Datenbank entnommen und einheitlich auf der Webseite aufbereitet werden. Hier ist ein Beispiel:

<xsl:choose>
<xsl:when test="quantity[@error=&#39;true&#39;]">
<td bgcolor="#ffffff"><img height="1" width="1" 
src="http://img.sparks.com/images/i-catalog/sparks_images/sparks_ui/clearpixel.gif"/></td>
<td valign="top" bgcolor="#ffffff" colspan="2">
<font face="verdana, arial" size="1" color="#cc3300"><b>*not enough in stock. your quantity was adjusted accordingly.</b>
</font></td> 
</xsl:when>
<xsl:otherwise> 
</xsl:otherwise>
</xsl:choose>
Nach dem Login kopieren
<xsl:for-each select="package">
<xsl:apply-templates select="product"/>
</xsl:for-each>
Nach dem Login kopieren

for-each 循环在程序遇到标签时开始。这个循环将在程序遇到标签时结束。一旦这个循环运行,每次标签出现时都会应用这个模板。

四、生成html

将来的某一时刻,浏览器将会集成xml解析引擎。到那时,你可以直接向浏览器发送xml和xsl文件,而浏览器则根据样式表中列出的规则显示xml数据。不过,在此之前开发者们将不得不在他们服务器端的系统里创建解析功能。

在sparks.com,我们已经在java servlet里集成了一个xml解析器。这个解析器使用一种称为xslt (xsl transformation)的机制,按xsl标签的说明向xsl模板中添加xml数据。

当我们的java servlet处理http请求时,servlet检索动态生成的xml,然后xml被传给解析引擎。根据xml文件中的指令,解析引擎查找适当的xsl样式表。解析器通过dom结构创建html文件,然后这个文件再传送给发出http请求的用户。

如果你选择使用sax模型,解析器会通读xml源程序,为每个xml标签创建一个事件。事件与xml数据对应,并最终按xsl标签向样式表中插入数据。

以上就是用XML和XSL来生成动态页面的内容,更多相关内容请关注PHP中文网(www.php.cn)!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Kann ich eine XML-Datei mit PowerPoint öffnen? Kann ich eine XML-Datei mit PowerPoint öffnen? Feb 19, 2024 pm 09:06 PM

Können XML-Dateien mit PPT geöffnet werden? XML, Extensible Markup Language (Extensible Markup Language), ist eine universelle Auszeichnungssprache, die häufig im Datenaustausch und in der Datenspeicherung verwendet wird. Im Vergleich zu HTML ist XML flexibler und kann eigene Tags und Datenstrukturen definieren, wodurch die Speicherung und der Austausch von Daten komfortabler und einheitlicher werden. PPT oder PowerPoint ist eine von Microsoft entwickelte Software zum Erstellen von Präsentationen. Es bietet eine umfassende Möglichkeit

Verwendung von Python zum Zusammenführen und Deduplizieren von XML-Daten Verwendung von Python zum Zusammenführen und Deduplizieren von XML-Daten Aug 07, 2023 am 11:33 AM

Verwenden von Python zum Zusammenführen und Deduplizieren von XML-Daten XML (eXtensibleMarkupLanguage) ist eine Auszeichnungssprache, die zum Speichern und Übertragen von Daten verwendet wird. Bei der Verarbeitung von XML-Daten müssen wir manchmal mehrere XML-Dateien zu einer zusammenführen oder doppelte Daten entfernen. In diesem Artikel wird erläutert, wie Sie mit Python die Zusammenführung und Deduplizierung von XML-Daten implementieren und entsprechende Codebeispiele angeben. 1. XML-Daten zusammenführen Wenn wir mehrere XML-Dateien haben, müssen wir sie zusammenführen

Konvertieren Sie XML-Daten in Python in das CSV-Format Konvertieren Sie XML-Daten in Python in das CSV-Format Aug 11, 2023 pm 07:41 PM

Konvertieren Sie XML-Daten in Python in das CSV-Format. XML (ExtensibleMarkupLanguage) ist eine erweiterbare Auszeichnungssprache, die häufig zur Datenspeicherung und -übertragung verwendet wird. CSV (CommaSeparatedValues) ist ein durch Kommas getrenntes Textdateiformat, das häufig für den Datenimport und -export verwendet wird. Bei der Datenverarbeitung ist es manchmal erforderlich, XML-Daten zur einfachen Analyse und Verarbeitung in das CSV-Format zu konvertieren. Python ist mächtig

XML-Daten mit Python filtern und sortieren XML-Daten mit Python filtern und sortieren Aug 07, 2023 pm 04:17 PM

Implementieren des Filterns und Sortierens von XML-Daten mit Python Einführung: XML ist ein häufig verwendetes Datenaustauschformat, das Daten in Form von Tags und Attributen speichert. Bei der Verarbeitung von XML-Daten müssen wir die Daten häufig filtern und sortieren. Python bietet viele nützliche Tools und Bibliotheken zum Verarbeiten von XML-Daten. In diesem Artikel wird erläutert, wie Sie mit Python XML-Daten filtern und sortieren. Lesen der XML-Datei Bevor wir beginnen, müssen wir die XML-Datei lesen. Python verfügt über viele XML-Verarbeitungsbibliotheken.

Importieren Sie XML-Daten mit PHP in die Datenbank Importieren Sie XML-Daten mit PHP in die Datenbank Aug 07, 2023 am 09:58 AM

Importieren von XML-Daten in die Datenbank mit PHP Einführung: Während der Entwicklung müssen wir häufig externe Daten zur weiteren Verarbeitung und Analyse in die Datenbank importieren. Als häufig verwendetes Datenaustauschformat wird XML häufig zum Speichern und Übertragen strukturierter Daten verwendet. In diesem Artikel wird erläutert, wie Sie mit PHP XML-Daten in eine Datenbank importieren. Schritt 1: XML-Datei analysieren Zuerst müssen wir die XML-Datei analysieren und die erforderlichen Daten extrahieren. PHP bietet mehrere Möglichkeiten zum Parsen von XML. Die am häufigsten verwendete davon ist die Verwendung von Simple

Python implementiert die Konvertierung zwischen XML und JSON Python implementiert die Konvertierung zwischen XML und JSON Aug 07, 2023 pm 07:10 PM

Python implementiert die Konvertierung zwischen XML und JSON. Einführung: Im täglichen Entwicklungsprozess müssen wir häufig Daten zwischen verschiedenen Formaten konvertieren. XML und JSON sind gängige Datenaustauschformate. In Python können wir verschiedene Bibliotheken zum Konvertieren zwischen XML und JSON verwenden. In diesem Artikel werden mehrere häufig verwendete Methoden mit Codebeispielen vorgestellt. 1. Um XML in Python in JSON zu konvertieren, können wir das Modul xml.etree.ElementTree verwenden

Behandeln von Fehlern und Ausnahmen in XML mit Python Behandeln von Fehlern und Ausnahmen in XML mit Python Aug 08, 2023 pm 12:25 PM

Behandeln von Fehlern und Ausnahmen in XML mit Python XML ist ein häufig verwendetes Datenformat zum Speichern und Darstellen strukturierter Daten. Wenn wir Python zum Verarbeiten von XML verwenden, können manchmal Fehler und Ausnahmen auftreten. In diesem Artikel werde ich die Verwendung von Python zur Behandlung von Fehlern und Ausnahmen in XML vorstellen und einige Beispielcodes als Referenz bereitstellen. Verwenden Sie Try-Exception-Anweisungen, um XML-Parsing-Fehler abzufangen. Wenn wir Python zum Parsen von XML verwenden, können manchmal Fehler auftreten

Python analysiert Sonderzeichen und Escape-Sequenzen in XML Python analysiert Sonderzeichen und Escape-Sequenzen in XML Aug 08, 2023 pm 12:46 PM

Python analysiert Sonderzeichen und Escape-Sequenzen in XML. XML (eXtensibleMarkupLanguage) ist ein häufig verwendetes Datenaustauschformat, das zum Übertragen und Speichern von Daten zwischen verschiedenen Systemen verwendet wird. Bei der Verarbeitung von XML-Dateien kommt es häufig vor, dass Sonderzeichen und Escape-Sequenzen enthalten sind, die zu Analysefehlern oder einer Fehlinterpretation der Daten führen können. Daher müssen wir beim Parsen von XML-Dateien mit Python verstehen, wie mit diesen Sonderzeichen und Escape-Sequenzen umgegangen wird. 1. Sonderzeichen und

See all articles