首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用shell脚本更新xml中的值?

如何使用shell脚本更新xml中的值?
EN

Stack Overflow用户
提问于 2013-07-30 15:31:59
回答 1查看 1.3K关注 0票数 1

我有一个XML,格式如下

代码语言:javascript
复制
<config>
        <global> 
                <log>
                        <file>log/global.log</file>
                        <level>DEBUG</level>
                </log>
        </global>
        <pipeline name="MediaExchange">
                <stop-file>MediaExchange.STOP</stop-file>
                <!--Delay in seconds before each poll-->
                <poll-delay>30</poll-delay>
                <source type="Cardinal-CH5-Meta">
                        <passive-mode>true</passive-mode>
                        <username>cardinalch5</username>                       
                </source>
            ....

我尝试打印标记中的值,然后将其替换为其他值。

代码语言:javascript
复制
# Retrieve value from XML file
xpath()
{
        log DEBUG $scriptFile "Parsing XML xpath"
        if [ `echo $1 | grep -v grep | grep /@ | wc -l` -ne 0 ]; then
                argDelta=`echo $1 | sed ' s!.*/@!! ; s/"$// '`
                value=`echo "cat $1" | xmllint --shell $2 | grep -v grep | grep = | sed -n 's|'${argDelta}'="\(.*\)"|\1|p'`
        else
                argDelta=`echo $1 | sed ' s!.*/!! ; s/"$// '`
                value=`echo "cat $1" | xmllint --shell $2 | sed -n 's|<'${argDelta}'>\(.*\)</'${argDelta}'>|\1|p'`
        fi
        echo $value
}
username=$(xpath /config/pipeline/[@name=\'MediaExchange\']/source/[@type=\'Cardinal-CH5-Meta\']/username config/config.xml)

我得到了下面的异常

代码语言:javascript
复制
XPath error : Invalid expression
/config/pipeline/[@name='MediaExchange']/source/[@type='Cardinal-CH5-Meta']/username
                 ^
xmlXPathEval: evaluation failed
/config/pipeline/[@name='MediaExchange']/source/[@type='Cardinal-CH5-Meta']/username: no such node

有没有人能帮帮忙?

EN

回答 1

Stack Overflow用户

发布于 2013-07-30 20:01:58

您的Xpath查询不正确,请查看:

代码语言:javascript
复制
/config/pipeline[@name='MediaExchange']/source[@type='Cardinal-CH5-Meta']/username/text()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17940877

复制
相关文章

相似问题

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