views:

60

answers:

1

Hi, I have an xml file which represents a number of objects for which I have a class in my application. For example, blogposts:

<blogposts>
  <blogpost id="604">
    <title>afdghadfh</title>
    <body>adfgadfgda</body>
  </blogpost>
  <blogpost id="605">
    <title>dafghadh</title>
    <body>afadf</body>
  </blogpost>
</blogposts> 

I would like to read the xml file using XPath and convert the results to blogpost objects. Is there any simple way to convert the resulting SimpleXMLElement Objects into values for a blogpost object?

Any advice appreciated.

Thanks.

+1  A: 

Tweak as needed.

// blogpost class definition

$blogposts = array();

$xml_resource = new SimpleXMLElement('file.xml', 0, true);

foreach($xml_resource->xpath('/blogposts/blogpost') as $blogpost)
{
    $current_blogpost = new blogpost();
    $current_blogpost->id = (int) $blogpost['id'];
    $current_blogpost->title = (string) $blogpost->title;
    $current_blogpost->body = (string) $blogpost->body;
    $blogposts[] = $current_blogpost;
}
Tim Cooper