1. Trang chủ
  2. » Công Nghệ Thông Tin

Pratique de MySQL et PHP- P75 pot

5 195 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Pratique de MySQL et PHP
Trường học University of XYZ
Chuyên ngành Computer Science
Thể loại Thesis
Năm xuất bản 2023
Thành phố Paris
Định dạng
Số trang 5
Dung lượng 149,1 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

8.4 MISE EN FORME DE DOCUMENTS AVEC XSLT Pour conclure cette présentation des possibilités d’utilisation de documents XML en association avec MySQL/PHP, nous montrons comment transformer

Trang 1

/ / I l y a un p r o b l è m e A f f i c h a g e du f o r m u l a i r e d e s a i s i e / / a v e c l e s v a l e u r s du t a b l e a u

$ t h i s−>vue−>contenu = " Problème : $message <br / > "

$ t b l _ f i l m−>f o r m u l a i r e ( TableBD : : INS_BD ,

" s a i s i e " , " i n s e r e r " ) ; }

e l s e {

/ / I n s e r t i o n , a v e c l a f o n c t i o n du m o d è l e

$ t b l _ f i l m−>i n s e r t i o n ( ) ; / / On a f f i c h e c e qu ’ on v i e n t d ’ i n s é r e r

$ t h i s−>vue−>i d _ f i l m = $ t b l _ f i l m −>i d ;

$ t h i s−>vue−> t i t r e = $ t b l _ f i l m −> t i t r e ;

$ t h i s−>vue−>annee = $ t b l _ f i l m −>annee ;

$ t h i s−>vue−> r e a l i s a t e u r = $ t b l _ f i l m −>n o m R e a l i s a t e u r ( ) ;

$ t h i s−>vue−>f i c h i e r _ x m l = $_FILES [ ’ fichierXML ’ ] [ ’ name ’ ] ;

$ t h i s−>vue−> s e t F i l e ( " contenu " , " xml_import t p l " ) ;

}

}

echo $ t h i s−>vue−>r e n d e r ( " page " ) ;

}

En résumé, nous avons vu dans cette section comment écrire un module d’analyse

de documents XML simple mais limité, puis comment utiliser des aspects avancés

de la programmation orientée-objet pour obtenir des outils beaucoup plus puis-sants, comprenant une bonne partie de code réutilisable en toutes circonstances

On peut noter que cette programmation permet notamment d’éviter le recours aux variables globales, qui mène rapidement à des scripts difficilement compréhen-sibles

8.4 MISE EN FORME DE DOCUMENTS AVEC XSLT

Pour conclure cette présentation des possibilités d’utilisation de documents XML en association avec MySQL/PHP, nous montrons comment transformer un document obtenu par export d’une base MySQL en un format quelconque avec le langage de transformation XSLT La motivation est la même que celle déjà explorée avec les

templates : on voudrait pouvoir séparer complètement le traitement du contenu, ici obtenu par de la programmation PHP/MySQL, et la présentation de ce contenu Dans

le cas des templates on utilisait des « modèles » HTML comprenant des « entités » et

on remplaçait ensuite, par programmation, ces entités par des chaînes de caractères PHP construites dynamiquement

La technique XML/XSLT est comparable, avec deux différences notables :

XSLT ;

manière structurée dans un document XML

Trang 2

Contrairement aux systèmes de templates, des solutions ad hoc dépendantes de

la bonne volonté d’un petit groupe de programmeurs, XSLT est un langage

offi-ciellement promu et défini par le World Wide Web Consortium, conçu pour offrir

toute la puissance nécessaire à la publication de contenus complexes, et offrant incontestablement de solides garanties de pérennité De plus, pour un même type

de document XML, il est possible de définir plusieurs programmes XSLT, chacun correspondant à un format de sortie différent XSLT est une solution à considérer si

on construit un site publiant un même contenu à destination de plusieurs médias

En contrepartie, XSLT est un langage complexe à apprendre et à maîtriser, et qu’avant de s’engager dans une solution technique comprenant des langages aussi différents que HTML, PHP, SQL, XML, XSLT, etc., il faut réfléchir sérieusement à ses avantages et inconvénients

La présentation qui suit a essentiellement pour objectif de vous permettre d’ap-précier les caractéristiques d’une telle solution, à charge pour vous ensuite de faire vos choix en connaissance de cause Il exclu de se lancer ici dans une présentation

du langage XSLT Les quelques exemples présentés se veulent suffisamment intuitifs pour saisir les principes de base

8.4.1 Quelques mots sur XSLT

Un programme XSLT est un document XML, constitué d’un élément racine

<xsl:stylesheet>, comprenant lui-même d’autres éléments parmi lesquels ceux

qui correspondent à des instructions XSLT sont tous préfixés par « xsl: » Les

principaux éléments XSLT sont les règles, de nom <xsl:template>.

Un programme XSLT s’applique à un document source XML en entrée et produit

un document résultat (qui est lui aussi du XML) La production du document résultat

s’appuie sur les règles du programme Intuitivement, le processeur XSLT commence par parcourir le document source, lequel est considéré comme une arborescence de nœuds Pour chaque nœud, le processeur regarde si une des règles du programme XSLT s’applique au nœud Si c’est le cas, un fragment du document résultat décrit dans la règle va être produit L’assemblage de tous les fragments produits au cours de l’exécution d’un programme constitue le document résultat complet

Nous allons présenter un programme XSLT qui s’applique aux documents XML

un document HTML Voici le programme XSLT « principal », avec une seule règle

Exemple 8.17 La règle XSLT pour la production d’une page HTML

< ? xml v e r s i o n = " 1 0 " e n c o d i n g = " ISO−8859−1 " ?>

< x s l : s t y l e s h e e t v e r s i o n = " 1 0 "

x m l n s : x s l = " h t t p : / / www w3 o r g / 1 9 9 9 / XSL / T r a n s f o r m " >

< x s l : i n c l u d e h r e f = " F i l m x s l " / >

< x s l : o u t p u t method= " html "

e n c o d i n g = " ISO−8859−1 " / >

Trang 3

< x s l : t e m p l a t e match= " / " >

< !−− E n t ê t e de l a p a g e −−>

<html>

<head>

< t i t l e > P a g e p r o d u i t e a v e c XSLT< / t i t l e >

< l i n k r e l = " s t y l e s h e e t " h r e f = " f i l m s c s s " t y p e = " t e x t / c s s " / >

< / head>

<body>

< c e n t e r ><h1> R é s u l t a t de l a m i s e en f o r m e XSLT< / h1>< / c e n t e r >

V o i c i l a l i s t e d e s f i l m s , m i s au f o r m a t HTML.

< !−− Mise en f o r m e du document XML −−>

< x s l : a p p l y−t e m p l a t e s / >

< / body>

< / html>

< / x s l : t e m p l a t e >

< / x s l : s t y l e s h e e t >

Ce programme est bien un document XML, avec un élément racine

<xsl:stylesheet>, contenant deux instructions <xsl:include>

et <xsl:output> sur lesquelles nous reviendrons plus tard, et une règle

<xsl:template> Le principe d’un tel programme est d’exécuter les instructions

XSLT et de les remplacer par le résultat de cette exécution qui doit être un fragment XML bien formé Quand toutes les instructions ont été traitées, il reste un document XML résultat sans traces d’instructions XSLT Ici le « dialecte » choisi pour la sortie est du (X)HTML

L’attribut match de la règle indique les nœuds du document source pour lesquels elle va être déclenchée La valeur de cet attribut doit être une expression d’un autre langage, XPath, qui permet d’exprimer des chemins dans une arborescence

XML L’expression « / » indique en l’occurrence que la règle s’applique à la racine

du document XML Quand le processeur va rencontrer ce nœud (il s’agit du premier

rencontré), la règle est déclenchée et produit la version intermédiaire suivante du document résultat

Exemple 8.18 Regle1.xml : Résultat intermédiaire après application de la première règle

<html>

<head>

<title>Page produite avec XSLT</title>

<link rel="stylesheet" href="films.css" type="text/css"/>

</head>

<body>

<center><h1>Mise en forme XSLT</h1></center>

Trang 4

Voici la liste des films, mis au format HTML.

<! Mise en forme du document XML >

<xsl:apply-templates/>

</body>

</html>

Ce document est déjà un document XML bien formé, mais pas encore un docu-ment HTML Il contient encore une instruction XSLT, <xsl:apply-templates>,

ce qui indique que le traitement n’est pas fini Le processeur XSLT va donc continuer

à parcourir le document source, en cherchant les règles qui s’appliquent à ses nœuds

et en déclenchant les règles appropriées

Dans notre premier programme nous avions une instruction <xsl:include>.

une unique autre règle

Exemple 8.19 La règle XSLT pour la présentation d’un film

< ? xml v e r s i o n = " 1 0 " e n c o d i n g = " i s o−8859−1 " ?>

< x s l : s t y l e s h e e t v e r s i o n = " 1 0 "

x m l n s : x s l = " h t t p : / / www w3 o r g / 1 9 9 9 / XSL / T r a n s f o r m " >

< x s l : o u t p u t method= " html " i n d e n t = " y e s " / >

< x s l : t e m p l a t e match= " F i l m " >

<h1>< i >< x s l : v a l u e−o f s e l e c t =" t i t r e " / >< / i >< / h1>

< !−− Genre , pays , e t a nnée du f i l m −−>

< x s l : v a l u e−o f s e l e c t =" g e nr e " / > ,

< i > < x s l : v a l u e−o f s e l e c t =" c o d e _ p a y s " / >< / i > ,

< x s l : v a l u e−o f s e l e c t =" annee " / >

< !−− Auteur du f i l m −−>

Mis en s c è n e p a r

<b>< x s l : v a l u e−o f

s e l e c t = " c o n c a t ( r e a l i s a t e u r / prenom , ’ ’ , r e a l i s a t e u r / nom ) " / >

< / b>

<h3> A c t e u r s < / h3>

< x s l : f o r−each s e l e c t =" Acteur ">

<b>< x s l : v a l u e−o f s e l e c t =" concat ( prenom , ’ ’ , nom) " / >< / b>

:

< x s l : v a l u e−o f s e l e c t =" nom_role " / ><br / >

< / x s l : f o r−each>

< !−− Résumé du f i l m −−>

<h3>Résumé< / h3>

Trang 5

< x s l : v a l u e−o f s e l e c t =" resume " / >

< / x s l : t e m p l a t e >

< / x s l : s t y l e s h e e t >

L’attribut match indique que cette seconde règle se déclenche sur un nœud

<Film> Ce déclenchement produit un fragment qui constitue une représentation

HTML des différentes données constituant le film rencontré La page HTML résultat contiendra, s’il y a trois films, les trois fragments successivement produits par exécu-tion de cette règle Les données sont extraites du document source avec l’instrucexécu-tion

<xsl:value-of> Par exemple :

• <xsl:value-of select="titre"> insère dans le résultat le contenu de l’élément <titre>, fils de l’élément <Film> ;

• <xsl:value-of select="Realisateur/@nom"> insère dans le résultat

la valeur de l’attribut nom de l’élément <Realisateur>, fils de l’élément

<Film> ;

On peut noter que XSLT permet également d’effectuer des boucles sur un

ensemble d’éléments, ici les acteurs, avec l’instruction <for-each> À chaque

fois que le processeur évalue une de ces instructions, elle est remplacée par le fragment XML produit Quand toutes les instructions ont été traitées, on obtient un document HTML

Voici par exemple ce que donne l’exécution de cette seconde règle, à partir du

page 331 On constate que le xsl:apply-templates est remplacé par le fragment XHTML produit :

Exemple 8.20 Regle2.xml : Après application de la deuxième règle

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>

<title>Page produite avec XSLT</title>

<link rel="stylesheet" href="films.css" type="text/css"/>

</head>

<body>

<center><h1>R´ esultat de la mise en forme XSLT</h1></center>

Voici la liste des films, mis au format HTML.

<h1><i>Kill Bill</i></h1>Drame, <i>USA</i>, 2003.

Mis en sc` ene par <b>Quentin Tarantino</b>.

<h3>Acteurs</h3>

<b>Uma Thurman</b>: La mari´ ee, alias "Black Mamba"<br/>

<b>Lucy Liu</b>: O-Ren Ishii<br/>

<b>David Carradine</b>: Bill<br/>

Ngày đăng: 06/07/2014, 00:20

TỪ KHÓA LIÊN QUAN