Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

It looks like there are many problems with simpleXML in PHP. I'm running the latest version of php on Windows and I just can not get the basic examples of simpleXML to work as in the documentation.

My xml file is:

<?xml version="1.0" encoding="ISO-8859-1"?>
<programme> 
  <title>Billy Bushwaka</title> 
  <episodeNumber>2</episodeNumber> 
  <description>Billy Bushwaka entertains</description> 
  <url>play.swf</url> 
</programme> 

My PHP program is:

<?php
$xml = simplexml_load_file("local.xml");

$result = $xml->xpath("//programme");
echo "Title: " . $result . "</br>";
?>

All I get is the following:

Title: Array

How can I get "Title: Billy Bushwaka"?

There are no repeats of XML data so I do not want to use arrays.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
363 views
Welcome To Ask or Share your Answers For Others

1 Answer

SimpleXML 101

  1. First of all, always name your PHP variables after the node they represent.

    // the root node is <programme/>
    $programme = simplexml_load_file("local.xml");
    
  2. Access to children (nodes) as if they were object properties.

    echo $programme->title;
    
  3. If there are multiple children using the same name, you can specify their 0-based position

    // first <title/> child
    echo $programme->title[0];
    
    // create or change the value of the second <title/> child
    $programme->title[1] = 'Second title';
    
  4. Access to attributes as if they were array keys

    // <mynode attr="attribute value" />
    echo $mynode['attr'];
    
  5. XPath always returns an array.


Back to your case, the best way to access that <title /> node would be

$programme = simplexml_load_file("local.xml");
echo "Title: " . $programme->title;

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...