XPath表达式中的Perl变量

Har*_*itz 1 xml perl xpath xml-libxml

如何使用XML :: LibXML模块的findnodes()函数在XPath表达式中使用Perl变量?这就是我得到的:

my $variable = 1;
foreach my $node1 ($doc->findnodes('par/par1/par2[@id = $variable]'))
{

}
Run Code Online (Sandbox Code Playgroud)

但它似乎没有用.谢谢.

TLP*_*TLP 5

您不能使用单引号进行插值,必须使用双引号或其他插值形式的引号

"par/par1/par2[\@id = $variable]"
Run Code Online (Sandbox Code Playgroud)

但是,我认为这@id不是一个变量,所以你必须逃避它的印记,否则它也将被视为一个变量.如果你正在使用use strict- 你总是应该 - 这将导致编译器错误.

可能会提到的其他形式的引用

  • qq(),这就像双引号
  • here文档