J'ai ce fichier XML:fichier XML Parse pour la balise spécifique pour obtenir le contenu d'une balise de frères et soeurs
<page>
<title>test</title>
<text>bla bla</text>
</page>
<page>
<title>another test</title>
<text>bla bla</text>
</page>
<page>
<title>hello</title>
<text>hello world</text>
</page>
Je veux analyser le fichier (analyseur PHP SAX) pour trouver des pages avec le titre « bonjour » , puis enregistrez le contenu de la balise de texte correspondant .. ce que je l'ai fait jusqu'à présent est la suivante:
$pages = array();
$elements = null;
function startElements($parser, $name, $attrs) {
global $wiki, $elements;
if(!empty($name)) {
$elements = $name;
}
}
function endElements($parser, $name) {
global $elements;
if(!empty($name)) {
$elements = null;
}
}
function characterData($parser, $data) {
global $pages, $elements;
if(!empty($data)) {
if ($elements == 'TITLE') {
if((preg_match('/Hello/', $data)==1))
{
// ... I found the page with the good title, but how to get the following text tag content!!
}
}
}
}
$parser = xml_parser_create();
xml_set_element_handler($parser, "startElements", "endElements");
xml_set_character_data_handler($parser, "characterData");
if (!($handle = fopen('tmp.xml', "r"))) {
die("could not open XML input");
}
while($data = fread($handle, 4096)) {
xml_parse($parser, $data);
}
Toutes les idées sur la façon d'obtenir le contenu de la balise de texte avec l'étiquette de certains titres? Je pourrais obtenir le résultat dont j'ai besoin en sauvegardant toutes les données dans un tableau .. et ensuite à la recherche !! mais j'aimerais une meilleure solution.
merci.
Est-ce que xml est énorme? – splash58
Pour référence: [Comment analyser et traiter HTML/XML en PHP?] (Http://stackoverflow.com/questions/3577641/how-do-you-parse-and-process-html-xml-in-php – FirstOne
@ splash58 oui, un énorme XML. –