【问题标题】:PHP Xpath get input node only with certain attributesPHP Xpath仅获取具有某些属性的输入节点
【发布时间】:2012-10-15 01:36:10
【问题描述】:

我正在尝试借助 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]");

但这不起作用。

【问题讨论】:

  • 您需要属性还是需要同时具有这两个属性的标签?另请注意,联合运算符不适用于 the predicate,但(仅)用于 Node-sets。

标签: php xpath input


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2019-02-08
    • 2013-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多