使用simplexml解析器的简单场景

时间:2013-05-27 08:39:01

标签: php xml-parsing simplexml

所以我开始在php库(5.5)中使用simplexml解析器..我以为我理解了什么是ono但显然不是......所以我有一个看起来像这个的xml文件

<?xml version="1.0" encoding="UTF-8" ?>
<Data><Series>
  <Genre>|Animation|Comedy|</Genre>
  <IMDB_ID>tt0096697</IMDB_ID>
  <Language>en</Language>
  <SeriesName>The Simpsons</SeriesName>
  .
  .
  .
</Series>
<Episode>
  .
  .
</Episode>
<Episode>
  .
  .
</Episode>
</Data>
</xml>

现在我开始在Episode标签之间抓取东西,一切都很棒......现在我想在我的php代码中获取<SeriesName>

$series = simplexml_load_file('en.xml');
$series_name = $series->SeriesName;

然而,这似乎没有用,我也试过

$series_name = $series->Data->Series->SeriesName

..并且这会返回尝试获取非对象属性的错误。我看了几个教程,似乎无法理解我做错了什么......长时间的啰嗦我知道但是我花了一些时间研究没有运气,任何帮助都会很棒,因为我确定它是愚蠢的东西

3 个答案:

答案 0 :(得分:1)

更改此行:

$series_name = $series->Data->Series->SeriesName;

要:

$series_name = $series->Series->SeriesName;

答案 1 :(得分:0)

使用var_dump($series)print_r($series)查看SimpleXMLElement对象的内容。

答案 2 :(得分:0)

使用正则表达式

preg_match_all('%(?<=<SeriesName>).*(?=</SeriesName>)%si', $subject, $result, PREG_PATTERN_ORDER);

$ result将是一个包含SeriesNames的数组