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


Getting Only the first result of a DOM xPath query

假设我有这样的代码:

$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'),但运气不好。

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

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

只需计算此XPath表达式

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

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

如果不想获取value属性,而是想获取其字符串值,请使用

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