Php XPath$变量而不是text()

Php XPath$变量而不是text(),php,domdocument,domxpath,Php,Domdocument,Domxpath,我正在使用以下XPath搜索: $var=''; $search=$selector->query('//td[text()=“text”]/以下同级::td')->项(0)假设为中缀concat运算符,则不知道这是哪种语言: $search = $selector->query('//td[text() = "'.$var.'"]/following-sibling::td'); 更新: 正如Charles Duffy指出的那样,给定的解决方案存在缺陷。警告:本节是完全根据php文档

我正在使用以下XPath搜索:

$var='';

$search=$selector->query('//td[text()=“text”]/以下同级::td')->项(0)
假设
为中缀concat运算符,则不知道这是哪种语言:

$search = $selector->query('//td[text() = "'.$var.'"]/following-sibling::td');
更新

正如Charles Duffy指出的那样,给定的解决方案存在缺陷。警告:本节是完全根据php文档设计的未经测试的代码(即)。请随意改进/删除

$var = '';

function get_var() {
    // Return variable $var
    return $var;
}
$selector->registerPHPFunctions("get_var");
$search = $selector->query('//td[text() = php:function("get_var")]/following-sibling::td');

我发现在JavaScript中使用XPath要容易得多。可能不适合你今天需要的,但知道未来很好。您使用的编程语言和特定的XPath库是什么?如果给出这些细节,可能会有更好的解决方案;例如,如果被替换的文本包含文本双引号,那么现有的一个将不起作用。大多数XPath引擎都适当地支持带外变量,这些变量不会带来查询注入的风险(就像这个答案所做的那样)。因此,这在正确性和安全性方面都是次优的——它是Bobby表的XPath等价物(当然,XPath中没有DROP TABLE操作,但仍然可以插入代码修改查询以选择用户不应该看到的信息)。