34 pers. connectées au site
Manuel Pear
Introduction
Introduction -- Utilisation de XPath
Que supporte XPath ?
Le support de XPath a été introduit pour fournir un accès au jeu de résultats après avoir exécuté la requête SQL. Cela permet de traiter le jeu de résultats sans interroger de nouveau la base de données une fois de plus.
XPath est un standard W3 et pour de plus amples informations concernant cela, lisez vos livres préférés XSL/XML ou http://www.w3.org/.
Passer une expression XPath
XML_sql2xml fournit deux fonctions pour traiter le jeu de résultats :
getXpathValue() et
getXpathChildValues(). Les deux attendent une requête XPath et retournent le résultat en tant que chaîne de caractères ou de tableau.
Exemple 68-1. getXpathValue
- <?php
- include_once("XML/sql2xml.php");
- $sql2xmlclass = new xml_sql2xml("mysql://username:password@localhost/xmltest");
- $sql2xmlclass->add("select * from bands");
- $xmlstring = $sql2xmlclass->getXpathValue("/root/result/row[id = '2']/name");
-
- ?>
$xmlstring contient :
$xmlstring = 'Only Stupids'
|
|
Exemple 68-2. getXpathChildValues
- <?php
- include_once("XML/sql2xml.php");
- $sql2xmlclass = new xml_sql2xml("mysql://username:password@localhost/xmltest");
- $sql2xmlclass->add("select * from bands");
- $xmlstring = $sql2xmlclass->getXpathChildValues("/root/result/row[id = '2']");
-
- ?>
$xmlstring contient :
Array
(
[] =>
[id] => 2
[name] => Only Stupids
[birth_year] => 1997
[birth_place] => New York
[genre] => Hip Hop
)
|
|
Mélanger les requêtes SQL et XPath
Vous pouvez insérer une requête XPath dans une requête SQL. Dans cet exemple, une requête SQL est tout d'abord exécutée, puis, une autre requête SQL est exécutée - mais le paramètre pour bandsID est pris depuis une expression XPath dans les parenthèses. Cette expression est appliquée dans le jeu de résutat de la première requête SQL.
Exemple 68-3. Requête mélangée
- <?php
- include_once("XML/sql2xml.php");
- $sql2xmlclass = new xml_sql2xml("mysql://username:password@localhost/xmltest");
- $sql2xmlclass->add("select * from bands");
- $sql2xmlclass->add("select * from albums where bandsID = {/root/result/row[name = 'The Blabbers']/id}");
- $xmlstring = $sql2xmlclass->getxml();
-
- ?>
$xmlstring = '
<?xml version="1.0"?>
<root>
<result>
<row>
<id>1</id>
<name>The Blabbers</name>
<birth_year>1998</birth_year>
<birth_place>London</birth_place>
<genre>Rock'n'Roll</genre>
</row>
<row>
<id>2</id>
<name>Only Stupids</name>
<birth_year>1997</birth_year>
<birth_place>New York</birth_place>
<genre>Hip Hop</genre>
</row>
</result>
<result>
<row>
<id>1</id>
<bandsID>1</bandsID>
<title>BlaBla</title>
<year>1998</year>
<comment>Their first one</comment>
</row>
<row>
<id>2</id>
<bandsID>1</bandsID>
<title>More Talks</title>
<year>2000</year>
<comment>The second one</comment>
</row>
</result>
</root>
|
|
Remonter