验证xpath表达式是否存在语法错误

时间:2014-02-12 21:45:02

标签: perl libxml2

从我的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变量 - 我会认为存在一种更有说服力的方法来直接执行此操作。有人有什么想法吗?

1 个答案:

答案 0 :(得分:1)

XML::LibXML::XPathExpression->new($xpath)


$ perl -MXML::LibXML -E'
   say "$_: ", eval { XML::LibXML::XPathExpression->new($_) } ?1:0
      for @ARGV;
' '//*' '///'
//*: 1
///: 0