【问题标题】:Using xpath on PHP: how to select first child?在 PHP 上使用 xpath:如何选择第一个孩子?
【发布时间】:2010-02-01 23:24:28
【问题描述】:

我有一个这样的 XML 结构:

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

如何使用 XPath 通过索引选择&lt;layout&gt; 的第一个节点?

w3schools 表示语法类似于/bookstore/book[1]/title ,但之后是says

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

IE5及以后实现了[0]应该是第一个节点,但是按照W3C标准应该是[1]!!

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

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

【问题讨论】:

  • 试试怎么样?如果[1] 选择第一个节点,这就是它在 PHP 中的工作方式。只有两种可能,所以并非不可能。尝试和错误:)

标签: php xml xpath


【解决方案1】:

正如菲利克斯所说:尝试一下怎么样?

$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 构建)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-16
    • 2021-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-28
    • 1970-01-01
    相关资源
    最近更新 更多