能否在Xidel中声明XPath表达式变量?附Xmlstarlet示例对比
在Xidel中为XPath声明内部变量的方法
当然可以,Xidel支持多种不依赖shell双引号的内部变量声明方式,以下是具体用法:
1. 命令行参数定义变量
使用--variable(简写-v)参数直接在命令行定义变量,和你给出的xmlstarlet用法逻辑类似:
xidel file.xml --variable xp='xpathExpression' -e '$xp'
这里--variable xp='xpathExpression'用来声明变量xp并绑定对应的XPath表达式,-e '$xp'则执行并输出该变量对应的结果。
2. XPath 3.0原生let语句
Xidel支持XPath 3.0语法,可直接在表达式内部用let绑定变量:
xidel file.xml -e 'let $xp := xpathExpression return $xp'
这种方式无需额外命令行参数,变量的作用域仅在当前XPath表达式内,适合构建复杂的查询逻辑。
3. Xidel扩展语法定义变量
Xidel提供了更简洁的扩展语法,用:=定义变量,通过;分隔执行语句:
xidel file.xml -e '$xp := xpathExpression; $xp'
先完成变量的赋值,再执行后续的引用操作,写法直观简洁。
内容的提问来源于stack exchange,提问作者Gilles Quénot
相关产品推荐
相关产品推荐

