


Detaillierte Erläuterung des Codes zum Generieren dynamischer Seiten mithilfe von XML und XSL
xml (Extensible Markup Language) sieht möglicherweise wie eine Art w3c-Standard aus – es hat jetzt keine wirklichen Auswirkungen, und wenn es sich später als nützlich erweist, wird es lange dauern Vor einiger Zeit. Aber tatsächlich wird es bereits genutzt. Warten Sie also nicht, bis XML zu Ihrem bevorzugten HTML-Editor hinzugefügt wurde. Beginnen Sie mit der Verwendung . Es löst jetzt verschiedene interne Probleme und B2B-Systemprobleme
Bei sparks.com verwenden wir XML, um insbesondere verschiedene Systeme von JavaObjektenzur HTML-Datenanzeige zu standardisieren Wir haben festgestellt, dass es einfacher ist, Daten zu teilen und zu bearbeiten, solange sie in einer sehr einfachen XML-Struktur standardisiert sind. Hier finden Sie eine detaillierte Einführung in unsere aktuelle Anwendung Erstellen Sie vor der Verwendung von XML ein XML-Datenformat, das sich von den Informationen unterscheidet, die Sie verwenden möchten. >
Dynamisches XML generierenDas Generieren von HTML aus der Datenbank ist nicht neu, das Generieren von XML jedoch schon die spezifischen Generierungsschritte Xsl als Vorlagensprache verwendenxsl (Extensible Stylesheet Language) ist eine gute Möglichkeit, das XML-Datenanzeigeformat zu definieren. Es ist effizienter, wenn es als geschrieben wird mehrerestatische
-Vorlagen zum Generieren von HTMLXML plus XSL entspricht HTML, aber unsere HTML-Seite, die Benutzer sehen, ist tatsächlich das Ergebnis von XML und xsl. Die Stärke von XML liegt in seiner Flexibilität. Leider ist es manchmal so flexibel, dass Sie sich fragen, wie Sie das Problem in jedem XML-Projekt lösen können Format. Dazu müssen Sie folgende Entscheidungen treffen:
Welche Daten sollen beteiligt sein?Ob dtd (Dateitypdefinition) verwendet werden soll
Bestimmen Sie, ob Verwenden Sie DOM (Document Object Model) oder SAX (vereinfachte API für XML) zum Parsen
Bestimmen Sie die Daten:
Da es kein Standard-XML-Format gibt, können Entwickler ihr eigenes Format entwickeln. Wenn Ihr Format jedoch nur von einer Anwendung erkannt wird, können Sie das Programm nur ausführen, um dieses Format zu verwenden. Es wäre natürlich hilfreicher, wenn es andere Programme gibt, die Ihr XML-Format ebenfalls verstehen Das System, das es verwendet, muss möglicherweise ebenfalls 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, ein XML-Format zu ändern, darin, Tags hinzuzufügen, anstatt sie zu ändern >
Klicken Sie hier, um ein Beispiel für das XML-Datenformat zu sehenBei sparks.com schauen wir uns alle Produktdaten an, die für verschiedene Produktpräsentationen benötigt werden. Alle Seiten verwenden alle Daten, aber wir haben eine entwickelt Sehr vollständiges XML-Datenformat, das für alle Daten gilt. 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 sollBei sparks.com verwenden wir gut organisiertes XML statt 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ählenJetzt 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 basiert auf demEreignis
. Wenn also die XML-Datei analysiert wird, wird das Ereignis 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 generierenSobald 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 Zeichenfolgen verarbeiten kann. Wir haben ein System mit Java Servlet, Enterprise JavaBean Server, JDBC und RDBMS (Relationale Datenbank Managementsystem) erstellt.
Das Servlet verarbeitet Produktinformationsanfragen, indem es die Aufgabe der Generierung von XML-Dokumenten an das Enterprise Javabean (ejb) verlagert.
ejb nutzt 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 XSL finden Sie unter Verwendung von kind.
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 folgenden drei xml.append()-Variablen selbst sind Aufrufe an andere Methoden. Dateiheader generierenstringbuffer 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());
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 (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(); }Füllen Sie die Produktinformationen ausNach Abschluss des Dateiheaders 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
<?xml version="1.0"?> <?xml-stylesheet href="/browse_find/browse.xsl" type="text/xsl"?> <browse>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(); }
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-Vorlage besteht aus sorgfältig organisierten XSL- und
HTML-Tags.
Beginnen Sie mit dem Erstellen der VorlageDer Anfang unserer XSL-Vorlage ähnelt dem folgenden Code. Die erste Codezeile ist erforderlich und definiert diese Datei als XSL-Stylesheet. Das xmlns:xsl=
-Attribut bezieht sich auf den XML-Namespace, der von dieser Datei verwendet wird, und das version=-Attribut definiert die Versionsnummer des Namespace. Am Ende der Datei schließen wir das Tag. Die zweite Codezeile, die mit beginnt, bestimmt das Muster der XSL-Vorlage. Das match-Attribut ist erforderlich und verweist hier auf das XML-Tag
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 choose<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>
-then-else-Struktur in traditionellen
-Programmiersprachen. In XSL gibt das „select“-Tag an, dass in dem Teil, in den der Code eintritt, die Zuweisung die Aktion auslöst. Das 在这个例子里,when标签会为quantity标签检查xml。如果quantity标签里含有值为真的error属性,quantity标签将会显示列在下面的表格单元。如果属性的值不为真,xsl将会显示otherwise标签间的内容。在下面的实例里,如果error属性不真,则什么都不会被显示。 for-each 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标签向样式表中插入数据。<xsl:choose>
<xsl:when test="quantity[@error='true']">
<td bgcolor="#ffffff"><img src="/static/imghwm/default1.png" data-src="http://img.sparks.com/images/i-catalog/sparks_images/sparks_ui/clearpixel.gif" class="lazy" style="max-width:90%" style="max-width:90%" / alt="Detaillierte Erläuterung des Codes zum Generieren dynamischer Seiten mithilfe von XML und XSL" ></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>
<xsl:for-each select="package">
<xsl:apply-templates select="product"/>
</xsl:for-each>
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des Codes zum Generieren dynamischer Seiten mithilfe von XML und XSL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

RSS ist ein XML-basiertes Format, das zum Veröffentlichen und Abonnieren von Inhalten verwendet wird. Die XML -Struktur einer RSS -Datei enthält ein Stammelement, ein Element und mehrere Elemente, die jeweils einen Inhaltseintrag darstellen. Lesen und analysieren Sie RSS -Dateien über XML -Parser, und Benutzer können den neuesten Inhalt abonnieren und abrufen.

XML hat die Vorteile strukturierter Daten, Skalierbarkeit, plattformübergreifender Kompatibilität und Parsingüberprüfung in RSS. 1) Strukturierte Daten sorgen für die Konsistenz und Zuverlässigkeit des Inhalts; 2) Die Skalierbarkeit ermöglicht das Hinzufügen von benutzerdefinierten Tags, um den Inhaltsanforderungen zu entsprechen. 3) Die plattformübergreifende Kompatibilität funktioniert es nahtlos auf verschiedenen Geräten. 4) Analytische und Überprüfungswerkzeuge gewährleisten die Qualität und Integrität des Futters.

Die Implementierung von RSS in XML besteht darin, Inhalte durch ein strukturiertes XML -Format zu organisieren. 1) RSS verwendet XML als Datenaustauschformat, einschließlich Elemente wie Kanalinformationen und Projektliste. 2) Beim Generieren von RSS -Dateien müssen Inhalte gemäß den Spezifikationen organisiert und für das Abonnement auf dem Server veröffentlicht werden. 3) RSS-Dateien können über einen Leser oder ein Plug-in abonniert werden, um den Inhalt automatisch zu aktualisieren.

Zu den erweiterten Funktionen von RSS gehören Inhaltsnamenspaces, Erweiterungsmodule und bedingte Abonnements. 1) Inhaltsnamenspace erweitert die RSS -Funktionalität, 2) erweiterte Module wie Dublincore oder iTunes, um Metadaten hinzuzufügen, 3) bedingte Abonnementfiltereinträge basierend auf bestimmten Bedingungen. Diese Funktionen werden implementiert, indem XML -Elemente und -attribute hinzugefügt werden, um die Effizienz des Informationen zu verbessern.

RSSFEEDSUSUSExMLTOstructureRecontentupdates.1) XmlProvidesahierarchicalStructurefordata.2) Die Auslagerungdefinedefeed -Säuberlichkeitsumschläge

RSS und XML sind Tools für die Verwaltung von Webinhalten. RSS wird verwendet, um Inhalte zu veröffentlichen und zu abonnieren, und XML wird verwendet, um Daten zu speichern und zu übertragen. Sie arbeiten mit Content Publishing, Abonnements und Update Push. Beispiele für die Nutzung sind RSS Publishing -Blog -Beiträge und XML -Speicherbuchinformationen.

RSS-Dokumente sind XML-basierte strukturierte Dateien, die zum Veröffentlichen und Abonnieren von häufig aktualisierten Inhalten verwendet werden. Zu den Hauptfunktionen gehören: 1) automatisierte Inhaltsaktualisierungen, 2) Inhaltsaggregation und 3) Verbesserung der Browsereffizienz. Durch RSSFeed können Benutzer die neuesten Informationen aus verschiedenen Quellen rechtzeitig abonnieren und abrufen.

Die XML -Struktur von RSS umfasst: 1. XML -Deklaration und RSS -Version, 2. Kanal (Kanal), 3. Artikel. Diese Teile bilden die Grundlage von RSS -Dateien, sodass Benutzer Inhaltsinformationen durch Parsen von XML -Daten erhalten und verarbeiten können.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

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

Heißer Artikel

Heiße Werkzeuge

VSCode Windows 64-Bit-Download
Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

ZendStudio 13.5.1 Mac
Leistungsstarke integrierte PHP-Entwicklungsumgebung

MantisBT
Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

mPDF
mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),