簡體   English   中英

如何使用shell腳本解析xml並獲取值

[英]How to parse an xml and get value using shell script

我有以下xml,

<?xml version="1.0" encoding="UTF-8"?>
<power-domains>
                <power-domain name="Security" cache-type="default">
                    <authentication>
                        <login-module code="test.module" flag="required" module="com.test.nms">
                            <module-option name="principal" value="admin"/>
                            <module-option name="userName" value="admin"/>
                            <module-option name="password" value="YSFSDwe"/>
                        </login-module>
                    </authentication>
                </power-domain>
</power-domains>

通過使用shell腳本,我需要解析上面的內容並獲取用戶名和密碼的值嗎?

請指導我怎么辦?

您可以使用此命令來提取值:

xmlstarlet sel -t \
    -v '//module-option[@name = "userName"]/@value' \
    -nl \
    -v '//module-option[@name = "password"]/@value' \
  file.xml

並且,假設您的 shell 是 bash,要將這些值讀入 shell 變量,請使用Process Substitution

{
    IFS= read -r userName
    IFS= read -r password
} < <(
    xmlstarlet sel -t -v '//module-option[@name = "userName"]/@value' -nl -v '//module-option[@name = "password"]/@value' file.xml  
)

echo "$userName"; echo "$password"
admin
YSFSDwe

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM