1

我正在尝试在 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/@*");

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

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

我试过以下

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

但这不起作用。

4

1 回答 1

1

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

//form[contains(@action,'login.jsf')]/input/@*[name()='name' or name()='value']
于 2012-10-15T01:57:12.463 回答