Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML > DOM
DOM Forum d'entraide pour l'extension DOM permettant de manipuler des documents XML en PHP 5 (approche DOM). Avant de poster -> tutoriels DOM
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 04/03/2008, 11h43   #1
Membre du Club
 
Avatar de Phenomenium
 
Inscription : janvier 2004
Messages : 185
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : janvier 2004
Messages : 185
Points : 57
Points : 57
Par défaut [DOM] Problème de retour chariot après les noeuds

Salut.

Le contexte :

Le probleme :

considère les retours chariots après mes balises comme des enfants du nœud et me renvoi un
Citation:
#text
.

Le code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
$this->oDom= new domDocument();
 
$this->oDom->load('mon/fichier/xml');
 
$oDomXpath = new DOMXpath($this->oDom);
 
$oDomXpath->preserveWhiteSpace = false;
 
$nodeList = $oDomXpath->query('//type');
 
if($nodeList)
{
    $aPlayerData = array();	
 
    foreach ($nodeList as $node)
    {					
        foreach($node->childNodes as $nodeChild)
	{					
	    $aPlayerData[$node->getAttribute('id')][$nodeChild->nodeName] = $nodeChild->nodeValue;
	}
    }
}
Le fichier XML :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
<?xml version="1.0" encoding="UTF-8"?>
<data>
	<type id="A">
		<value>90</value>
	</type>
	<type id="B">
		<value>53</value>
	</type>
	<type id="C">
		<value>85</value>
	</type>
</data>
Le résultat :

Citation:
Array
(
[A] => Array
(
[#text] =>

[value] => 90
)

[B] => Array
(
[#text] =>

[value] => 53
)

[C] => Array
(
[#text] =>

[value] => 85
)

)
La question :

Est ce que quelqu'un sais comment éviter cela ?
Aurais je oublier un truc ?

J'ai pensé tester la valeur de chaque nœud et afficher ou non l'enfant, mais je trouve cette solution crado et je suis sur qu'on peu éviter ça autrement.

A titre indicatif : La propriété ni change rien.

Merci d'avance
Phenomenium est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2008, 13h47   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Parce que cette propriété doit être utilisée avant le chargement du document (méthodes load et loadXML). Une fois le document chargé, il est trop tard pour agir sur ce point ...
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2008, 13h58   #3
Membre du Club
 
Avatar de Phenomenium
 
Inscription : janvier 2004
Messages : 185
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : janvier 2004
Messages : 185
Points : 57
Points : 57
Citation:
Envoyé par julp Voir le message
Parce que cette propriété doit être utilisée avant le chargement du document (méthodes load et loadXML). Une fois le document chargé, il est trop tard pour agir sur ce point ...
Effectivement, j'ai déplacé le preserveWhiteSpace juste avant le load du fichier et ça marche.

Merci ;-)
Phenomenium est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h28.


 
 
 
 
Partenaires

Hébergement Web