在PHP上使用xpath:如何选择第一个孩子?

时间:2010-02-01 23:24:29

标签: php xml xpath

我有一个像这样的XML结构:

<layout>
    <pattern> ... </pattern>
    <row> ... </row>
</layout>

如何使用XPath按其索引选择<layout>的第一个节点?

w3schools表示语法与/bookstore/book[1]/title类似,但后来says

  

这有一个问题。上面的示例在IE和其他浏览器中显示了不同的结果。

     

IE5及更高版本已经实现了[0]应该是第一个节点,但是根据W3C标准它应该是[1] !!

     

解决方法!
  要解决IE5 +中的[0]和[1]问题,可以将SelectionLanguage设置为XPath。

但那是特定于客户的。 PHP手册也不是很清楚。

1 个答案:

答案 0 :(得分:5)

菲利克斯说:尝试怎么样?

$l = new SimpleXMLElement('<layout>
  <pattern> ... </pattern> 
  <row> ... </row>  
</layout>');
foreach($l->xpath('/layout/*[1]') as $n) {// yeah yeah, it's only one....
  echo $n->getName();
}

打印pattern。 (php 5.3.1 / win32 / php.net build)