如何使用php在xpath中使用变量作为属性值?

时间:2016-10-13 14:31:42

标签: php string variables xpath

这有效

$feed = $xml->xpath('//room[@id="103"]');

我正在尝试用103变量替换$id。 我试过了

$feed = $xml->xpath('//room[@id=$id]');

$feed = $xml->xpath('//room[@id=".$id."]');

没有工作。

将变量放在xpath中的适当语法是什么?

2 个答案:

答案 0 :(得分:1)

当你在字符串中写$id时,php会像字符串一样使用它。你应该关闭引用,如

$feed = $xml->xpath('//room[@id="'.$id.'"]');

或在{}

中写入变量
$feed = $xml->xpath('//room[@id="{$id}"]');

答案 1 :(得分:0)

您的问题已经由穆罕默德(Mohammad)回答 但我在行末使用[0]给出了一个更完整的示例,以避免在某些用法下出现更多行

$feed = $xml->xpath('//room[@id="'.$id.'"])[0];

如果您也想从xml的结果中获取使用@attribute的根内部的其他值

$day= $_GET['Day']; 
$feed = $xml->xpath('//room[@id="'.$id.'"]/Day'.$day.'')[0];

这意味着,如果您有一个像更硬代码一样的xml文件,则可以动态调整一天的时间