将PHP变量添加到Xpath中

3

我只需要在XPath中添加一个变量,我的代码如下:

$target = $xml->xpath('//gig[@id=$1]');

但我也需要它,但是类似于某些东西。
$target = $xml->xpath("//gig[@id=$" $change . "]");

这个有可能吗?

如果是的话,能有人帮忙吗?


1
问题是什么?除了缺少的句号打字错误,你自己提供了解决方案。 - Veger
1个回答

6

使用:

$target = $xml->xpath("//gig[@id=$". $change . "]");

或者,如果您不需要美元符号。
$target = $xml->xpath("//gig[@id=". $change . "]");

如果您需要在php中转义字符,例如双引号",请使用

\"

1
$target = $xml->xpath("//gig[@id='{$change}']") 也是有效的。 - meiryo
请注意,除非知道$change的内容,否则上述代码容易受到注入攻击。攻击者可以导致返回任意节点($change = "some_nonsensical_id'] | a malicious xpath | //some_nonsensical_element_name[@some_nonsensical_attribute_name='")。 - Witiko
@Witiko,这不是一般前提中的变量插值吗?这是一个真正的问题,我不敢妄自评论。 - Scott Anderson
并非每个字符串都是SQL命令。如果您正在构建包含自然语言文本的字符串,则可能不太关心。 - Witiko

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接