无法从xml文件中获取信息(simplexml_load_file)

时间:2014-06-25 14:44:48

标签: php xml simplexml

我的xmlfile看起来像:

<?xml version="1.0"?>
<METADATA xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <MDR-DVD>
    <dvdTitle>Rambo First Blood Part II</dvdTitle>
    <releaseDate>1985 01 01</releaseDate>
    <genre>Actie</genre>
    <largeCoverParams>D:\Films\Rambo First Blood Part II\cover.jpg</largeCoverParams>
    <smallCoverParams>D:\Films\Rambo First Blood Part II\cover.jpg</smallCoverParams>
    <duratation>94</duratation>
    <title>
      <synopsis>Ex-Green Beret en Vietnamveteraan John Rambo zit inmiddels al drie jaar vast in een kamp waar hij zware arbeid moet verrichten als straf voor de gebeurtenissen uit 'First Blood'. Zijn voormalige kolonel Trautman komt hem opzoeken met een aanbod of nog vijf jaar zware arbeid, of een missie in Vietnam om een aantal Amerikaanse krijgsgevangenen te lokaliseren. John kiest voor het tweede. Hij komt onder commando te staan van Murdock, een man die niet het beste met John voorheeft...</synopsis>
    </title>
  </MDR-DVD>
</METADATA>

我的php文件如下所示:(其中description_file是xml文件的URL)

$xml4=simplexml_load_file($description_file);
print_r($xml4);
echo $xml4->genre;

print_r有效,它显示整个xml文件:

SimpleXMLElement Object ( [MDR-DVD] => SimpleXMLElement Object ( [dvdTitle] => Rambo First Blood Part II [releaseDate] => 1985 01 01 [genre] => Actie [largeCoverParams] => D:\Films\Rambo First Blood Part II\cover.jpg [smallCoverParams] => D:\Films\Rambo First Blood Part II\cover.jpg [duratation] => 94 [title] => SimpleXMLElement Object ( [synopsis] => ...moviedescription... ) ) )

但我无法从标签中获取信息, echo $ xml4-&gt; genre; - 什么都不返回 - 甚至没有错误

怎么了?

- 我注意到当我从xml文件中删除元数据标签时,echo $ xml4-&gt;类型;确实有效,但我需要这一行:)

2 个答案:

答案 0 :(得分:2)

<genre><MDR-DVD>的子项,而不是根节点的子项。 PHP代码应该如下所示:

$metadata = simplexml_load_file($filename);
echo $metadata->{"MDR-DVD"}->genre;

答案 1 :(得分:-1)

尝试:

echo $xml4->{MDR-DVD}[0]->genre

http://www.php.net/manual/en/simplexml.examples-basic.php