簡體   English   中英

XPath表達式中的Perl變量

[英]Perl variable in XPath expression

如何使用XML :: LibXML模塊的findnodes()函數在XPath表達式內使用Perl變量? 這就是我得到的:

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

}

但這似乎不起作用。 謝謝。

您不能使用單引號進行插值,必須使用雙引號或進行插值的另一種形式的報價

"par/par1/par2[\@id = $variable]"

但是,我假設@id不是變量,因此您必須轉義其符號,否則也將其視為變量。 如果您use strict (始終應該這樣做),則將導致編譯器錯誤。

可能提到的其他形式的報價

  • qq() ,就像雙引號一樣
  • Heredocs

編輯:向TLP致敬

哈里茲,

將XPath表達式周圍的單引號更改為雙引號是否可行?

我來到這里尋找完全相同的解決方案,並在我的一個腳本中進行了嘗試,我認為它在使用雙引號而不是單引號的情況下是相同的,但是我很想知道它是否也對您有用。

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

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM