2013-03-29 113 views
0

你好,所以这是PHP的我:使用simplexml_load_file如何获得价值一组特定的键

if (file_exists('movies.xml')) { 
    $xml = simplexml_load_file('movies.xml'); 

print $xml->key['Movie']; 
} 

这里是movies.xml样子:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict><dict> 
<key>2066</key> 
     <dict> 
      <key>ID</key><integer>111</integer> 
      <key>Year</key><string>2011</string> 
      <key>Movie</key><string>The beach</string> 
<dict> 
<key>2068</key> 
       <dict> 
      <key>ID</key><integer>112</integer> 
      <key>Year</key><string>2012</string> 
      <key>Movie</key><string>Titanic</string> 
<dict> 

我想得到<key>Movie</key>值 在这种情况下它将是:海滩和泰坦尼克号。 (我想存储在一个阵列,如果可能的话)

任何建议我做错了什么?

回答

0

看起来你有一些格式不正确的XML。 simplexml_load_file返回false。

http://www.php.net/manual/en/function.simplexml-load-file.php

返回与包含在XML文档中保持的数据,或FALSE的失败属性的类的SimpleXMLElement的对象。

+0

我在该页面上,我不能弄清楚这件事。也差格式?该文件来自itunes商店...不知道他们是否将它格式不当 – cppit

+0

没有''标签。我试着将你的样本块加载到simplexml_load_string中(在添加一个根标签后)并且出现错误。 '标签字典7中的数据提前结束'标签字典3中的数据提前终止' – Brett

+0

我添加了xml的顶部。它的15MB文件我不能复制整个交易...这就是为什么我只是复制了一块它对不起 – cppit