基本的simpleXML工作示例?

and*_*ton 5 php xml xpath simplexml

看起来PHP中的simpleXML存在很多问题.我正在Windows上运行最新版本的php,我无法像在文档中那样使用simpleXML的基本示例.

我的xml文件是:

<?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> 
Run Code Online (Sandbox Code Playgroud)

我的PHP程序是:

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

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

我得到的是以下内容:

标题:数组

我如何获得"Title:Billy Bushwaka"?

没有重复的XML数据,所以我不想使用数组.

Jos*_*vis 20

SimpleXML 101

  1. 首先,始终在它们代表的节点之后命名您的PHP变量.

    // the root node is <programme/>
    $programme = simplexml_load_file("local.xml");
    
    Run Code Online (Sandbox Code Playgroud)
  2. 访问子节点(节点)就好像它们是对象属性一样.

    echo $programme->title;
    
    Run Code Online (Sandbox Code Playgroud)
  3. 如果有多个子项使用相同的名称,则可以指定其基于0的位置

    // first <title/> child
    echo $programme->title[0];
    
    // create or change the value of the second <title/> child
    $programme->title[1] = 'Second title';
    
    Run Code Online (Sandbox Code Playgroud)
  4. 访问属性就像它们是数组键一样

    // <mynode attr="attribute value" />
    echo $mynode['attr'];
    
    Run Code Online (Sandbox Code Playgroud)
  5. XPath总是返回一个数组.


回到你的情况,访问该<title />节点的最佳方式是

$programme = simplexml_load_file("local.xml");
echo "Title: " . $programme->title;
Run Code Online (Sandbox Code Playgroud)