从我的Perl脚本中,我正在寻找一种方法来严格评估/验证xpath表达式的语法问题/问题 - 仅此而已。我提出了以下工作解决方案:
my $xpath = '//*'; ##good ; ##bad '//*?'
eval { XML::LibXML->new()->parse_string('<X>boguscontent</X>')->findvalue($xpath) };
$@ ? print "bad xpath\n" : print "good xpath\n";
我发现奇怪的是我必须通过所有这些来放置$ xpath变量 - 我会认为存在一种更有说服力的方法来直接执行此操作。有人有什么想法吗?
答案 0 :(得分:1)
XML::LibXML::XPathExpression->new($xpath)
$ perl -MXML::LibXML -E'
say "$_: ", eval { XML::LibXML::XPathExpression->new($_) } ?1:0
for @ARGV;
' '//*' '///'
//*: 1
///: 0