Xml vers tableau php
Résolu
JypX
Messages postés
68
Statut
Membre
-
JypX Messages postés 68 Statut Membre -
JypX Messages postés 68 Statut Membre -
Bonjour,
Peut on simplifier ce code car si j'ai bien tout compris : il parcourt une première fois pour les puls puis reparcourt pour la vitesse.
Peut on récupérer les puls et la vitesse en 1 fois?
Peut on simplifier ce code car si j'ai bien tout compris : il parcourt une première fois pour les puls puis reparcourt pour la vitesse.
Peut on récupérer les puls et la vitesse en 1 fois?
<?php
$dom = new DomDocument;
$dom->load("Log_090717_090008.slf");
// Puls
$listePuls = $dom->getElementsByTagName('Puls');
foreach($listePuls as $puls)
$arraypuls[] = $puls->firstChild->nodeValue;
// Vitesse
$listeVitesse = $dom->getElementsByTagName('Speed');
foreach($listeVitesse as $vitesse)
$arrayvitesses[] = $vitesse->firstChild->nodeValue;
?>
A voir également:
- Xml vers tableau php
- Tableau word - Guide
- Tableau ascii - Guide
- Xml download - Télécharger - Édition & Programmation
- Trier un tableau excel - Guide
- Tableau croisé dynamique - Guide
6 réponses
Donc si j'ai 10 champs à récupérer il me fait 10 getElementsByTagName. On peut pas faire autrement car ça doit utilisé pas mal de ressource serveur?
<?xml version="1.0" encoding="utf-8"?>
<Log>
<Information>
<Name><![CDATA[Sortie groupe jambon]]></Name>
<Notiz/>
<RadGroesse>2133</RadGroesse>
<Einheit>kmh</Einheit>
<Fahrrad>2</Fahrrad>
<HFMax>205</HFMax>
<StartZone1>113</StartZone1>
<StartZone2>144</StartZone2>
<StartZone3>169</StartZone3>
<EndeZone3>205</EndeZone3>
<Kalorien>01918</Kalorien>
<StartZeit>08:33:51</StartZeit>
<SamplingRate>5</SamplingRate>
<StoppZeit>10:39:08</StoppZeit>
<StartDatum>05.07.09</StartDatum>
<StoppDatum>05.07.09</StoppDatum>
</Information>
<LogEintraege>
<Eintrag pause="0" wp="0">
<Pause zeit=""/>
<Rest zeit=""/>
<WPTitel/>
<WPNotiz/>
<RPLAbs>0</RPLAbs>
<Speed>38.59</Speed>
<Puls>117</Puls>
<Hoehe>40</Hoehe>
<Temp>22</Temp>
<Steigung>0</Steigung>
</Eintrag>
<Eintrag pause="0" wp="0">
<Pause zeit=""/>
<Rest zeit=""/>
<WPTitel/>
<WPNotiz/>
<RPLAbs>23</RPLAbs>
<Speed>39.56</Speed>
<Puls>118</Puls>
<Hoehe>40</Hoehe>
<Temp>22</Temp>
<Steigung>0</Steigung>
</Eintrag>
<Eintrag pause="0" wp="0">
<Pause zeit=""/>
<Rest zeit=""/>
<WPTitel/>
<WPNotiz/>
<RPLAbs>24</RPLAbs>
<Speed>41.11</Speed>
<Puls>123</Puls>
<Hoehe>40</Hoehe>
<Temp>22</Temp>
<Steigung>0</Steigung>
</Eintrag>
<Eintrag pause="0" wp="0">
<Pause zeit=""/>
<Rest zeit=""/>
<WPTitel/>
<WPNotiz/>
<RPLAbs>24</RPLAbs>
<Speed>41.88</Speed>
<Puls>132</Puls>
<Hoehe>40</Hoehe>
<Temp>22</Temp>
<Steigung>0</Steigung>
</Eintrag>
<Eintrag pause="0" wp="0">
<Pause zeit=""/>
<Rest zeit=""/>
<WPTitel/>
<WPNotiz/>
<RPLAbs>24</RPLAbs>
<Speed>40.53</Speed>
<Puls>137</Puls>
<Hoehe>40</Hoehe>
<Temp>22</Temp>
<Steigung>0</Steigung>
</Eintrag>
....
...
...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question<?php
$dom = new DOMDocument();
$dom->load('fichier.xml');
$LogEintraege = $dom->getElementsByTagName('LogEintraege')->item(0);
$Eintrags = $LogEintraege->childNodes;
foreach($Eintrags as $Eintrag) {
if($Eintrag->nodeName == 'Eintrag') {
$infos = $Eintrag->childNodes;
foreach($infos as $info) {
if($info != '#text') {
if(isset(${$info->nodeName}))
${$info->nodeName}[] .= $info->nodeValue;
else
${$info->nodeName}[] = $info->nodeValue;
}
}
}
}
?>Avec ça, tu as une variable (array) portant le nom de chaque nœuf enfant (balise à l'intérieur) des nœuds "Eintrag".
Par exemple : $Temp , $Steigung , $Puls , ...