假设我有这段代码:
$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')
但不是运气。
答案 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)