Salve!
ho un file XML del tipo:
Codice PHP:
<?xml version="1.0" encoding="iso-8859-1" ?>
<galleries xmlns="x-schema:gallerySchema.xml">
<site name="Informatica">
<gallery>
<name>Software</name>
<url>[url]http://www.softaware.it[/url]</url>
<type>Assistenza</type>
</gallery>
<gallery>
<name>Hardware</name>
<url>[url]http://www.hardware.com[/url]</url>
<type>Assistenza</type>
</gallery>
...
</site>
</gallery>
e il seguente script per la lettura e la stampa del file:
Codice PHP:
<?php
$filename="prova.xml";
if( ! ($fp = fopen( "$filename" , "r" )) )die("Couldn't open xml file!");
$person_counter = 0;
$person_data = array();
$xml_current_tag_state = '';
function startElementHandler( $parser, $element_name, $element_attribs ){
global $person_counter;
global $person_data;
global $xml_current_tag_state;
$xml_current_tag_state = $element_name;
}
function endElementHandler( $parser, $element_name ){
global $person_counter;
global $person_data;
global $xml_current_tag_state;
$xml_current_tag_state = '';
if( $element_name == "SITE" ) {
$person_counter++;
}
}
function characterDataHandler( $parser , $data ){
global $person_counter;
global $person_data;
global $xml_current_tag_state;
if( $xml_current_tag_state == '' )
return;
if( $xml_current_tag_state == "GALLERY" ) {
$person_data[$person_counter]["gallery"] = $data;
}
if( $xml_current_tag_state == "NAME" ) {
$person_data[$person_counter]["name"] = $data;
}
if( $xml_current_tag_state == "URL" ) {
$person_data[$person_counter]["url"] = $data;
}
if( $xml_current_tag_state == "TYPE" ) {
$person_data[$person_counter]["type"] = $data;
}
}
if( !($xml_parser = xml_parser_create()) ) die("Couldn't create XML parser!");
xml_set_element_handler($xml_parser, "startElementHandler", "endElementHandler");
xml_set_character_data_handler($xml_parser, "characterDataHandler");
while( $data = fread($fp, 4096) ){
if( !xml_parse($xml_parser, $data, feof($fp)) ){
break; // get out of while loop if we?re done with the file
}
}
xml_parser_free($xml_parser);
?>
<?php
for( $i=0 ; $i < $person_counter ; ++$i ){
//$font_color = $person_data[$i]["alignment"] == "good" ? "#0000ff" : "#ff0000";
echo $i . "
\n";
echo "site: " . $person_data[$i]["site"] . "
\n";
echo "url: " . $person_data[$i]["url"] . "
\n";
echo "type: " . $person_data[$i]["type"] . "
\n";
//echo "nuovo_tag_xml: " . $person_data[$i]["nuovo_tag_xml"] . "
\n";
//se vuoi aggiungere nuovo campo
echo "
\n";
}
?>
Ma a quanto pare lo script non vuole saperne di estrapolarmi il nome del sito, l'url e il tipo :master:
Potrei avere dei consulti?
Grazie 1000!!!