仅获取DOM xPath查询的第一个结果

时间:2012-01-22 02:24:25

标签: php dom xpath

假设我有这段代码:

$dom = new DOMDocument();
@$dom->loadHTMLFile('sample.html');
$xp = new DOMXPath($dom);
$result = $xp->query("//input[@id='honey']");

如何仅获取第一个结果的属性value的内容,因为我只期望一个结果(不使用foreach循环)。我尝试了var_dump - 但结果不行。我也试过current($result)->getAttribute('value')但不是运气。

2 个答案:

答案 0 :(得分:6)

您可以通过以下方式访问它:

$value = $result->item(0)->attributes()->getNamedItem("value")->nodeValue;

答案 1 :(得分:2)

只评估此XPath表达式

(//input[@id='honey'])[1]/@value

这将选择XML文档中第一个value元素的属性input,其id属性为"honey"的字符串值。

如果您不想获得value属性,但要使用其字符串值,请使用

string((//input[@id='honey'])[1]/@value)