2010-08-10 3 views
6

Je dispose d'un fichier XMLétat dans la mise en œuvre XPath

<?xml version="1.0" encoding="UTF-8"?> 
<xml> 
    <events date="12/12/2010"> 
    <event> 
     <title>JqueryEvent</title> 
     <description> 
     easily 
     </description> 
    </event> 
    </events> 
    <events date="14/12/2011"> 
    <event> 
     <title>automatically onBlur</title> 
     <description> 
     when a date is selected. For an inline calendar, simply attach the datepicker to a div or span. 
     </description> 
    </event> 
    </events> 
</xml> 

Je me sers de ce XPath pour sélectionner les nœuds

$xml = simplexml_load_file($file); 
$nodes = $xml->xpath('//xml/events'); 

Il sélectionnera tous les nodes.I veulent sélectionner les nœuds en fonction à la date.

Répondre

7

Indiquez la date dans l'expression XPath,

-à-dire

$nodes = $xml->xpath('//xml/events[@date="14/12/2011"]'); 

choisirait seul le dernier événement nœud dans l'exemple

4

Utilisez

$xml = simplexml_load_string($xml); 
$nodes = $xml->xpath('//events[@date="14/12/2011"]'); 
print_r($nodes); 

pour obtenir le nœud d'événement sous le nœud xml avec la date spécifiée et

$xml = simplexml_load_string($xml); 
$nodes = $xml->xpath('//xml/events[@date]'); 
print_r($nodes); 

pour obtenir tous les événements sous les nœuds de nœud XML ayant un attribut de date. De même, utilisez

$xml = simplexml_load_string($xml); 
$nodes = $xml->xpath('//events[contains(@date, "2011")]'); 
print_r($nodes); 

pour trouver tous les noeuds d'événement dans le document avec un attribut de date contenant la chaîne "2011".

Sur une note, vous pouvez utiliser simplexml_load_file pour charger un fichier XML directement.