使用Xpath访问xml中的Node元素

时间:2013-09-18 06:34:53

标签: php xml xpath

我正在上传xml文件并访问php类中的值。一切都很顺利,但是当我尝试访问$ middle_of_month值时,我遇到了一个名为

的调试错误
  

“调用未定义的方法DOMNodeList :: getElementsByTagName()”

这是xml的样子

...
<Fdr>
  <MiddleOfMonth>
      <Data Value="0" MonthNumber="1" />
      ...

我通过调试验证了其他标签是否正确。

$fdr             = $key->getElementsByTagName(tag_constants::TAG_FDR);
$middle_of_month = $fdr->getElementsByTagName(tag_constants::TAG_MIDDLE_OF_MONTH);

我在$ middle_of_month行中有错误。我调试了2个小时仍然无法弄清楚出了什么问题。任何帮助将不胜感激

编辑:

tag_constants::TAG_FDR -> Fdr
tag_constants::TAG_MIDDLE_OF_MONTH ->MiddleOfMonth

编辑2:

$middle_of_month = $fdr->item(0)->getElementsByTagName(tag_constants::TAG_MIDDLE_OF_MONTH); 

似乎解决了这个问题

1 个答案:

答案 0 :(得分:2)

getElementsByTagName()会返回NodeList,正如错误所暗示的那样,NodeList s不会反过来使用此方法(只有ElementDocument s做)。

您需要从$fdr中选择一个项目以运行getElementsByTagName();或许像:

$fdr->item(0)->getElementsByTagName(tag_constants::TAG_MIDDLE_OF_MONTH);