Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML
XML Forum d'entraide sur XML avec PHP. Exemples : SimpleXML, OpenXML... Avant de poster -> FAQ XML, Cours XML et Sources XML
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/11/2007, 12h57   #1
Membre du Club
 
Inscription : avril 2007
Messages : 233
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : avril 2007
Messages : 233
Points : 60
Points : 60
Par défaut [EXPAT] Analyser un fichier XML

salut,

j'ai un fichier xml sous la forme
Citation:
<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<item>
<title>TEST N02</title>

<description><p>zzzzz</p></description>

<link><![CDATA[?Id=4&lang=fr&Ref=18]]></link>
</item>
</channel>
</rss>
Je suis entrain de parser ce fichier XML pour accéder à la balise <title>, mais mon problème c'est que je n'arrive pas à accéder à la balise <item>, voici mon bout de code pour mieux comprendre:

Code :
1
2
3
4
 
$racine = $parser->documentElement();
$channel = $racine->getElementsByTagName('CHANNEL');
$item = $channel->getElementsByTagName('ITEM');
j'ai testé avec:
Citation:
1- $item = $racine.$channel->getElementsByTagName('ITEM');
2- $item = $racine->$channel->getElementsByTagName('ITEM');
mais ça ne marche toujours pas, est ce que vous avez une idée?

Merci
__________________
Il faut parfois servir pour mieux dériger..
namstou3 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2007, 18h50   #2
Membre du Club
 
Inscription : avril 2007
Messages : 233
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : avril 2007
Messages : 233
Points : 60
Points : 60
En fait j'ai testé mon code sur ce fichier XML et ça a bien marché:

Code XML :
1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="iso-8859-1"?>
  <opcvm_all>
    <opcvm id="4">
	  <date>20/01/2007</date>
	  <vl>0000</vl>
	  <trois_ans>2007</trois_ans>
	  <un_an>2007</un_an>
	  <six_mois>2007</six_mois>
	</opcvm>
  </opcvm_all>

mais pour ce fichier :
Code XML :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?xml version="1.0" encoding="UTF-8" ?>
 
<rss version="2.0">
 
<channel>
 
<item>
 
		<title>TEST N02</title>
 
		<description><p>zzzzz</p></description>
 
		<link><![CDATA[?Id=4&lang=fr&Ref=18]]></link>
 
</item>
 
</channel>
 
</rss>

ça n'a pas du tout marché puisqu'il y a une balise de plus, et c'est là où ça pose problème, je n'arrive pas à accéder au contenu des balises <title>, <description>, <link>


et mon code est le suivant, je change juste le noms des balises

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$parser = new XML_Parser();
$parser->xml_file = "apcvm_all.xml";
$parser->load();
$racine = $parser->documentElement();
$livres = $racine->getElementsByTagName('OPCVM');
 
foreach($livres->tag_array as $opcvm)
{
    //$id = $opcvm->attr_array['ID'];
	$tabDataXML["date"]=$opcvm->getDataItem(0);
	$tabDataXML["vl"]=$opcvm->getDataItem(1);
	$tabDataXML["trois_ans"]=$opcvm->getDataItem(2);
	$tabDataXML["un_an"]=$opcvm->getDataItem(3);
	$tabDataXML["six_mois"]=$opcvm->getDataItem(4);
}
print_r($tabDataXML);
$parser->destroy();
__________________
Il faut parfois servir pour mieux dériger..
namstou3 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h29.


 
 
 
 
Partenaires

Hébergement Web