【问题标题】:How to pass value from html to xpath expression in php?如何将值从 html 传递到 php 中的 xpath 表达式?
【发布时间】:2020-05-01 15:19:35
【问题描述】:

HTML -

<form action="http://192.168.64.2/file.php" method="GET">
<input type="text" id="venue" name="venue" />

XML -

<a>
<a1>
<author pid = "123"> </author>
<book>Book1</book>
</a1>
<a2>
<editor pid = "123"> </editor>
<book>Book2</book>
</a2>
</a>

PHP 中的 Xpath -

<?php
$venue = $_GET['venue'];
$abc= new DomDocument();
$abc -> load("file.xml");
        $xpath = new DOMXPath($abc);
$xyz = $xpath -> evaluate ("count(//book[.='$venue'] and //author[@pid='123'] and //editor[@pid='123'] [parent::a1 or parent::a2] )");
echo $xyz;
?>

如果在 HTML“书”标签和作者 ID 或编辑器 ID = 123 中找到 HTML 表单中输入的值,那么我想查找书籍元素的计数。我正在尝试这个,但没有得到计数并出现错误。请帮忙。

【问题讨论】:

  • 不知道你说的我想找到那个计数,一个计数是什么?
  • 你不应该在变量周围使用单引号吗? $xyz = $xpath -&gt; evaluate("//book[.='$venue'][parent::a1 or parent::a2]")所以,如果你想计算尊重表单条件的书籍元素的数量$xpath -&gt; evaluate("count(//book[.='$venue'][parent::a1 or parent::a2])")
  • @E.Wiest aaah...成功了...非常感谢伙计。
  • @E.Wiest 你能帮忙吗?我现在修改了我的问题。

标签: php html xml xpath


【解决方案1】:

要计算符合您条件的 book 元素(book 元素的值 = 表单的值,并且前面的 author 或 editor 元素的属性值 = 123),请使用以下表达式:

count(//book[.='$venue'][preceding-sibling::editor[@pid='123'] or preceding-sibling::author[@pid='123']])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-09
    • 1970-01-01
    • 2015-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-13
    相关资源
    最近更新 更多