我有以下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脚本,我需要解析以上内容并获取userName和密码的值?
请指导我怎么做?
答案 0 :(得分:2)
您可以使用以下xmlstarlet命令提取值:
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