PHP Xpath仅使用某些属性获取输入节点

时间:2012-10-15 01:36:11

标签: php xpath input

我试图在DOM Xpath的帮助下解析HTML文档

我在HTML中有几个输入标签,例如

<form id="someid" action="login.jsf">
   <input type="hidden" id="someid" name="somename" value="somevalue">
   <input type="text" id="someid" name="somename" value="somevalue">
</form>

我有以下代码来访问表单中的所有输入标记。

$inputFields = $xpath->query("//form[contains(@action,'login.jsf')]/input/@*");

它返回所有具有所有属性的输入节点,但我只需要名称和值属性,否则我将必须围绕所有属性运行循环并丢弃除名称和值之外的所有其他属性。基本上我想“仅使用名称和值属性选择所有输入节点。”

我需要根据名称和值属性值创建一个post数组。

我试过以下

 $inputFields = $xpath->query("//form[contains(@action,'login.jsf')]/input/[@name | @value]");

但这不起作用。

1 个答案:

答案 0 :(得分:1)

您可以使用name函数获取属性的名称:

//form[contains(@action,'login.jsf')]/input/@*[name()='name' or name()='value']