首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将变量从bash传递到XQuery

将变量从bash传递到XQuery
EN

Stack Overflow用户
提问于 2017-03-14 04:08:20
回答 2查看 509关注 0票数 3

我有一个bash脚本,它遍历多个目录并解析几个XML文件中的数据。我正在使用XQilla来执行我的XQueries。

代码语言:javascript
复制
echo "---|Reading names|---"
../../xqilla .._name.fcs >> /var/lib/mysql-files/name.txt

这是XQuery:

代码语言:javascript
复制
for $fw in doc("./network_objects.xml")/network_objects/network_object
where $fw/interfaces/interfaces/ipaddr
return (data($fw/Name))

如何将变量从bash-script传递给XQuery,这样我就可以搜索不同的项目,例如,取决于cwd?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-14 04:36:31

使用xqilla's -v option to pass an external variable (这是一个标准化的XQuery概念):

代码语言:javascript
复制
-v <name> <value> : Bind the name value pair as an external variable

在XQuery中,确保将变量声明为external。

例如,调用通过值bar传递$foo变量的XQuery脚本

代码语言:javascript
复制
xqilla -v foo bar test.xq

并通过在脚本标头中声明该变量来使用该变量:

代码语言:javascript
复制
declare variable $foo external;

concat("Value of $foo is: ", $foo)
票数 2
EN

Stack Overflow用户

发布于 2017-04-24 01:19:50

代码语言:javascript
复制
#!/bin/dash

echo "Alpha
Bravo
Charlie
Delta" |
while read name; do
    echo "/network_objects/network_object[Name='$name'][interfaces/interface/ipaddr]/Name/string()" |
        xqilla -i ./network_objects.xml /dev/stdin
done
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42772517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档