如何将值从html传递到php中的xpath表达式?

问题描述 投票:0回答:1

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;
?>

如果在XML“ book”标记中找到以HTML表单形式输入的值,并且作者ID或编辑者ID = 123,那么我想查找书本元素的数量。我正在尝试这样做,但没有得到计数并得到一个错误。请帮助。

php html xml xpath
1个回答
0
投票

要计算符合您条件的书籍元素(书籍元素的值=表单的值,以及先前作者或编辑者元素的属性值= 123),请使用以下表达式:

count(//book[.='$venue'][preceding-sibling::editor[@pid='123'] or preceding-sibling::author[@pid='123']])
© www.soinside.com 2019 - 2024. All rights reserved.