recherche
Maisondéveloppement back-endTutoriel XML/RSSExplication détaillée du code pour générer des pages dynamiques à l'aide de XML et XSL

xml (Extensible Markup Language) peut ressembler à une sorte de w3c standard - il n'a pas de réel impact pour le moment, et s'il s'avère utile plus tard, ce sera long il y a du temps. Mais en fait, il est déjà utilisé. Alors, n'attendez pas que XML ait été ajouté à votre htmléditeur préféré. Commencez à l'utiliser . Il résout désormais divers problèmes internes et problèmes du système b2b

Chez sparks.com, nous utilisons XML pour standardiser différents systèmes, desobjets Javaà l'affichage des données HTML

En particulier. , nous avons constaté qu'il est plus facile de partager et de manipuler des données tant qu'elles sont standardisées dans une structure XML très basique. Il existe de nombreuses façons efficaces d'utiliser XML. Voici une introduction détaillée de notre application actuelle

. Avant d'utiliser XML, créez un format de données XML différent des informations que vous souhaitez utiliser.>

Générer du XML dynamique

La génération de HTML à partir de la base de données n'est pas nouvelle, mais la génération de XML l'est. les étapes spécifiques de génération

Utiliser xsl comme langage de modèle

xsl (Extensible Stylesheet Language) est un bon moyen de définir le format d'affichage des données XML. Il sera plus efficace s'il est écrit ainsi. plusieurs modèles

statiques

pour générer du html

xml plus xsl est égal à html Cela peut sembler faux, mais notre page html que les utilisateurs voient est en fait le résultat de xml et. xsl. La puissance du XML vient de sa flexibilité. Mais malheureusement, il est parfois si flexible que vous vous retrouverez face à une page blanche et vous demanderez comment résoudre le problème dans n'importe quel projet XML. Pour ce faire, vous devez prendre les décisions suivantes :

Quelles données doivent être impliquées ?

Utiliser ou non dtd (définition du type de fichier)

Déterminer s'il faut utilisez DOM (Document Object Model) ou SAX (API simplifiée pour XML) pour analyser

Déterminez les données :

Comme il n'existe pas de format XML standard, les développeurs sont libres de développer leur propre format. Cependant, si votre format n'est reconnu que par une seule application, vous ne pouvez exécuter le programme que pour utiliser ce format. Il serait évidemment plus utile qu'il existe d'autres programmes qui comprennent également votre format XML. Le système qui l'utilise devra peut-être également être modifié, vous devez donc créer le format aussi complet que possible. Étant donné que la plupart des systèmes ignorent les balises qu'ils ne reconnaissent pas, le moyen le plus sûr de changer un format XML est d'ajouter des balises au lieu de les modifier

Cliquez ici pour voir un exemple du format de données XML

Chez sparks.com, nous examinons toutes les données de produits nécessaires aux différentes présentations de produits. Toutes les pages utilisent toutes les données, mais nous avons développé un. format de données XML très complet qui s'applique à toutes les données. Par exemple, notre page de détails du produit affiche plus de données que notre page de navigation des produits. Cependant, nous utilisons toujours le même format de données dans les deux cas car le modèle XML de chaque page n'utilise que les champs dont il a besoin.

S'il faut utiliser dtd

Chez sparks.com, nous utilisons du XML bien organisé au lieu du simple XML correct, car le premier ne nécessite pas de dtd. DTD ajoute une couche de traitement entre le clic de l'utilisateur et la visualisation de la page. Nous avons constaté que cette couche nécessitait trop de traitement. Bien sûr, il est toujours agréable d'utiliser des DTD pour communiquer avec d'autres entreprises au format XML. Parce que dtd peut garantir que la structure des données est correcte lors de l'envoi et de la réception.

Sélectionnez le moteur d'analyse

Maintenant, plusieurs moteurs d'analyse sont disponibles. Le choix que vous choisirez dépend presque entièrement des besoins de votre application. Si vous décidez d'utiliser DTD, le moteur d'analyse doit être capable de permettre à votre XML d'être vérifié par DTD. Vous pouvez placer la validation dans un processus distinct, mais cela aurait un impact sur les performances.

Sax et dom sont deux modèles analytiques de base. SAX est basé sur

event

, donc lorsque le XML est analysé, l'événement est envoyé au moteur. Ensuite, les événements sont synchronisés avec le fichier de sortie. Le moteur d'analyse DOM établit une structure arborescente hiérarchique pour les données XML dynamiques et les feuilles de style XSL. En accédant de manière aléatoire à l'arborescence DOM, les données XML peuvent être fournies comme si elles étaient déterminées par une feuille de style XSL. Le débat sur le modèle SAX porte principalement sur la réduction excessive de la mémoire de la structure DOM et l'accélération du temps d'analyse de la feuille de style XSL.

Cependant, nous avons constaté que de nombreux systèmes utilisant le sax n'exploitaient pas pleinement ses capacités. Ces systèmes l'utilisent pour créer des structures DOM et envoyer des événements via des structures DOM. Avec cette approche, le DOM doit être construit à partir de la feuille de style avant tout traitement XML, les performances en souffriront donc.

2. Générer du XML dynamique

Une fois le format XML établi, nous avons besoin d'une méthode pour le transplanter dynamiquement à partir de la base de données.

La génération de documents XML est relativement simple car elle nécessite uniquement un système capable de gérer des chaînes. Nous avons construit un système utilisant java servlet, serveur javabean d'entreprise, jdbc et rdbms (base de données relationnelle système de gestion).

La servlet gère les demandes d'informations sur les produits en déchargeant la tâche de génération de documents XML vers le javabean d'entreprise (ejb).

ejb utilise jdbc pour interroger les détails du produit requis dans la base de données.

ejb génère le fichier xml et le transmet à la servlet.

La servlet appelle le moteur d'analyse pour créer une sortie HTML à partir de fichiers XML et de feuilles de style XML statiques. (Pour plus d’informations sur l’application de XSL, consultez Utilisation de kind.

Le code pour démarrer le processus de génération XML est placé dans la méthode ejb. Cette instance créera immédiatement un stringbuffer pour stocker la chaîne XML générée.

Les trois variables xml.append() suivantes sont elles-mêmes des appels à d'autres méthodes.

Générer l'en-tête du fichier
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());

La première méthode supplémentaire appelle la classe xmlutils pour générer l'en-tête du fichier XML. Le code dans notre servlet java est le suivant :

Ce code génère l'en-tête du fichier XML. La balise définit ce fichier comme un fichier XML prenant en charge la version 1.0. La deuxième ligne de code pointe vers l'emplacement de la feuille de style correcte pour afficher les données. La dernière chose incluse est la balise au niveau de l'élément ( dans cet exemple). À la fin du fichier, seule la balise

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();
}
Remplissez les informations sur le produit

Après avoir terminé l'en-tête du fichier, la méthode de contrôle appellera l'objet Java pour générer son XML. Dans cet exemple, l'objet produit est appelé. L'objet produit utilise deux méthodes pour générer sa représentation XML. La première méthode toxml() crée le nœud produit en générant les balises Il appelle ensuite internalxml(), qui fournit le contenu requis pour le fichier XML du produit. internalxml() est une série d'appels stringbuffer.append(). Le stringbuffer est également converti en chaîne et renvoyé à la méthode de contrôle.
<?xml version="1.0"?> <?xml-stylesheet href="/browse_find/browse.xsl" type="text/xsl"?> <browse>

Fermez le fichier

Enfin, la méthode xmlutils.enddocument() est appelée. Cet appel ferme la balise XML (dans ce cas) et complète enfin le fichier XML structuré. L'intégralité du tampon de chaîne de la méthode de contrôle est également convertie en chaîne et renvoyée au servlet qui a traité la requête http d'origine.
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. Utilisez XSL comme langage de modèle

Afin d'obtenir une sortie HTML, nous combinons le fichier XML généré avec le modèle XML qui contrôle la façon dont les données XML sont représentées. Notre modèle XML se compose de balises XSL et

html

soigneusement organisées.

Commencez à créer le modèleLe début de notre modèle XML est similaire au code ci-dessous. La première ligne de code est obligatoire et définit ce fichier comme une feuille de style XML. L'attribut xmlns:xsl=

fait référence à l'espace de noms XML utilisé par

ce fichier, et l'attribut version= définit le numéro de version de l'espace de noms. A la fin du fichier, nous fermons la balise. La deuxième ligne de code commençant par

Ensuite, jetons un coup d'œil au HTML bien organisé. Puisqu'il sera traité par le moteur d'analyse XML, il doit respecter toutes les règles d'un XML bien organisé. Essentiellement, cela signifie que toutes les balises d'ouverture doivent avoir une balise de fermeture correspondante. Par exemple, la balise

, qui n'est normalement pas fermée, doit être fermée avec

. Dans le corps du modèle, de nombreuses balises XML sont utilisées pour fournir une logique de présentation des données. Deux balises couramment utilisées sont expliquées ci-dessous. La balise

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>

est similaire au début de la structure

if

-then-else dans les langages de programmation

traditionnels

. En XSL, la balise Choose indique que dans la partie où entre le code, l'affectation déclenchera l'action. La balise avec les attributs attribués suit la balise Choose. Si l'affectation est correcte, le contenu entre les balises d'ouverture et de fermeture de Si l'affectation est erronée, le contenu entre les balises d'ouverture et de fermeture de Terminez toute la section par .

    在这个例子里,when标签会为quantity标签检查xml。如果quantity标签里含有值为真的error属性,quantity标签将会显示列在下面的表格单元。如果属性的值不为真,xsl将会显示otherwise标签间的内容。在下面的实例里,如果error属性不真,则什么都不会被显示。

<xsl:choose>
<xsl:when test="quantity[@error=&#39;true&#39;]">
<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="Explication détaillée du code pour générer des pages dynamiques à l'aide de XML et 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>

for-each

标签可以用来对相似xml数据的多种情况应用同一个样式表。对于我们来说,可以从数据库中取出一系列产品信息,并在web页上进行统一格式化。这里有一个例子:

<xsl:for-each select="package">
<xsl:apply-templates select="product"/>
</xsl: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标签向样式表中插入数据

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Rôle de XML dans RSS: le fondement du contenu syndiquéRôle de XML dans RSS: le fondement du contenu syndiquéApr 12, 2025 am 12:17 AM

Le rôle central de XML dans RSS est de fournir un format de données standardisé et flexible. 1. La structure et les caractéristiques du langage de balisage de XML le rendent adapté à l'échange et au stockage des données. 2. RSS utilise XML pour créer un format standardisé pour faciliter le partage de contenu. 3. L'application de XML en RSS comprend des éléments qui définissent le contenu des aliments, tels que le titre et la date de sortie. 4. Les avantages incluent la normalisation et l'évolutivité, et les défis incluent des exigences de syntaxe verbeux et strictes de documents. 5. Les meilleures pratiques incluent la validation de la validité XML, la maintenance simple, l'utilisation des CDATA et la mise à jour régulièrement.

De XML au contenu lisible: démystifier les flux RSSDe XML au contenu lisible: démystifier les flux RSSApr 11, 2025 am 12:03 AM

RSSFeedsArexMLDocuments utilisé pour la contention de la variabilité et la distribution.

Existe-t-il une alternative RSS basée sur JSON?Existe-t-il une alternative RSS basée sur JSON?Apr 10, 2025 am 09:31 AM

JSONFeed est une alternative RSS basée sur JSON qui a ses avantages simplicité et facilité d'utilisation. 1) JSONFeed utilise le format JSON, qui est facile à générer et à analyser. 2) Il prend en charge la génération dynamique et convient au développement Web moderne. 3) L'utilisation de JSONFeed peut améliorer l'efficacité de la gestion du contenu et l'expérience utilisateur.

Outils de document RSS: Flux de construction, de validation et d'éditionOutils de document RSS: Flux de construction, de validation et d'éditionApr 09, 2025 am 12:10 AM

Comment construire, valider et publier RSSFeeds? 1. Build: Utilisez des scripts Python pour générer RSSFeed, y compris le titre, le lien, la description et la date de sortie. 2. Vérification: utilisez FeedValidator.org ou Python Script pour vérifier si RSSFeed est conforme aux normes RSS2.0. 3. Publier: Télécharger les fichiers RSS sur le serveur, ou utiliser Flask pour générer et publier RSSFeed dynamiquement. Grâce à ces étapes, vous pouvez gérer et partager efficacement le contenu.

Sécuriser vos flux XML / RSS: une liste de contrôle de sécurité complèteSécuriser vos flux XML / RSS: une liste de contrôle de sécurité complèteApr 08, 2025 am 12:06 AM

Méthodes pour garantir la sécurité de XML / RSSFeeds incluent: 1. Vérification des données, 2. Transmission cryptée, 3. Contrôle d'accès, 4. Journaux et surveillance. Ces mesures protègent l'intégrité et la confidentialité des données via des protocoles de sécurité du réseau, des algorithmes de chiffrement des données et des mécanismes de contrôle d'accès.

XML / RSS Interview Questions & Answers: Augmentez votre expertiseXML / RSS Interview Questions & Answers: Augmentez votre expertiseApr 07, 2025 am 12:19 AM

XML est un langage de balisage utilisé pour stocker et transférer des données, et RSS est un format basé sur XML utilisé pour publier du contenu fréquemment mis à jour. 1) XML décrit les structures de données via des balises et des attributs, 2) RSS définit une publication spécifique de balises et un contenu souscrit, 3) XML peut être créé et analysé à l'aide des nœuds XML de Python pour les expressions XPATH qui peuvent être validés par XMllint, 7), le traitement des grands fichiers XML avec SAX Parser peut optimiser les performances.

Tutoriel Advanced XML / RSS: Ace votre prochain entretien techniqueTutoriel Advanced XML / RSS: Ace votre prochain entretien techniqueApr 06, 2025 am 12:12 AM

XML est un langage de balisage pour le stockage et l'échange de données, et RSS est un format basé sur XML pour la publication du contenu mis à jour. 1. XML définit les structures de données, adaptées à l'échange de données et au stockage. 2.RSS est utilisé pour l'abonnement de contenu et utilise des bibliothèques spéciales lors de l'analyse. 3. Lors de l'analyse du XML, vous pouvez utiliser DOM ou SAX. Lors de la génération de XML et de RSS, les éléments et les attributs doivent être définis correctement.

De XML / RSS à JSON: stratégies de transformation des données modernesDe XML / RSS à JSON: stratégies de transformation des données modernesApr 05, 2025 am 12:08 AM

Utilisez Python pour convertir de XML / RSS en JSON. 1) Parse Source Data, 2) Extraire les champs, 3) Convertir en JSON, 4) Sortir JSON. Utilisez les bibliothèques XML.ETREE.ElementTree et FeedParser pour analyser XML / RSS et utilisez la bibliothèque JSON pour générer des données JSON.

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

Listes Sec

Listes Sec

SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.

PhpStorm version Mac

PhpStorm version Mac

Le dernier (2018.2.1) outil de développement intégré PHP professionnel

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Puissant environnement de développement intégré PHP

SublimeText3 Linux nouvelle version

SublimeText3 Linux nouvelle version

Dernière version de SublimeText3 Linux