使用DOMXPath提取隐藏输入元素的属性值

时间:2010-02-06 21:28:45

标签: php xml dom xpath

我有一段HTML代码:

<form method="post" action="/">
  <input type="hidden" name="example-name" value="example-value">
  <button type="submit">Submit</button>
</form>

如何在PHP中使用DOMXPath提取隐藏输入的值? 我试过这样的事情:

//$site - the html code
$doc = new DOMDocument();
$doc->loadHTML($site);
$xpath = new DOMXpath($doc);

$kod = $xpath->query("//input[@name='example-name']");
foreach($kod as $node)
$values[]=$node->nodeValue;
return $values;

但它返回一个空数组。错误在哪里?

2 个答案:

答案 0 :(得分:7)

尝试使用value元素获取input元素的name属性 example-name

'//input[@name="example-name"]/@value'

结果

Array
(
    [0] => example-value
)

您的XPath没有选择属性轴(我认为这就是它所谓的),但文本轴和输入没有文本,数组中的值为空。它确实找到了元素。

答案 1 :(得分:4)

$node->getAttribute('value');