hent fra xml fil

Tags:    php

Jeg er kommet fren til følgendene script for at læse en xml fil:

<?php
$xml =

simplexml_load_file("fil.xml");

echo $xml->getName() . "<br />";

foreach($xml->children() as $child)
{
echo $child->getName() . ": " . $child . "<br />";
}
?>

men jeg vil gerne have den til at læse nogle bestemte xml child

her er min xml fil:

<?xml version="1.0" encoding="utf-8" ?>
- <response>
<action>receivemessage</action>
- <data>
- <message>
<messageid>258f4be3-0b7f-4cc5-a270-ead37776bd51</messageid>
<originator>+4560196210</originator>
<recipient>+441234567</recipient>
<messagetype>SMS:TEXT</messagetype>
<messagedata>Frank Hej der ved min ven.</messagedata>
<senttime>2009-08-14 22:43:36</senttime>
<receivedtime>2009-08-14 22:47:20</receivedtime>
</message>
- <message>
<messageid>71090f2a-b76f-4d7a-973f-92d1c79fa4e7</messageid>
<originator>+4560196210</originator>
<recipient>+441234567</recipient>
<messagetype>SMS:TEXT</messagetype>
<messagedata>Frank hej med dig.</messagedata>
<senttime>2009-08-14 22:34:25</senttime>
<receivedtime>2009-08-14 22:47:16</receivedtime>
</message>
</data>
</response>

Jeg vil gerne have at den viser alle child hvad skal jeg gøre dor at få den til det?



9 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
Tror det er lidt nemmere med domdocument. :)
http://www.php.net/domdocument
Fold kodeboks ind/udKode 




Jeg tror bare du lige mangler noget henvisning til xml elementet.
Denne er ikke testet, men jeg har før brugt noget lignende.

Fold kodeboks ind/udKode 


Hvis dit messagedata element også havde en attribut vil denne kunne læses sådan:
Fold kodeboks ind/udKode 


Jeg håber det kan hjælpe dig lidt videre.



Indlæg senest redigeret d. 05.11.2009 20:02 af Bruger #14472
du mener son denne?

<?php
$dom = new DomDocument();
$dom->load('fil.xml');
$body = $dom->documentElement->getElementsByTagName('book');
echo '<pre>'.dom_dump($body).'<pre>';
?>


Bruger jeg den melderden fejl i linie 5 med
dom_dump()

hvad er dit forslag?



Kig i koden, og læs dokumentationen... :)



eller mere denne?

<?php
$xmlDoc = new DOMDocument();
$xmlDoc->load("fil.xml");

$x = $xmlDoc->documentElement;
foreach ($x->childNodes AS $item)
{
print $item->nodeName . " = " . $item->nodeValue . "<br />";
}
?>

dermangler jeg bare at få filen delt mere op efter child



er kommet længest med denne:

<?php
$xmlDoc = new DOMDocument();
$xmlDoc->load("fil.xml");

$x = $xmlDoc->documentElement;
foreach ($x->childNodes AS $item)
{
print $item->nodeName . " = " . $item->nodeValue . "<br />";
if ($item->nodeName =="#text") echo "<br/>";
}
?>

Men kan ikke få den til at dele mere op.



et bud:
Fold kodeboks ind/udPHP kode 

ikke testet..



jo den nedereste er testet og virker

if gør bare ikke helt det den skal
men noget gør den.

Men son sagt kan ikke få den delt op i flere.



velkommen til selv at teste:
http://87.54.129.127/smssys/test1.php



t