繁体   English   中英

bash脚本读取和存储xml值

[英]bash script to read & store xml value

我有一个XML文件,我想检索filePath值并将其存储为用于启动应用程序的变量。 这是xml文件:

<?xml version="1.0"?>
<resultset statement="SELECT * FROM dms.gamThr_exp
" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <row>
    <field name="id">1</field>
    <field name="filePath">/home/drs/Videos/Game.of.Thrones/Game.of.Thrones.S01E01.mkv</field>
 </row>
</resultset>

我把这个脚本拼凑了一下,但是没有用:

#!/bin/bash
myvar=$(echo 'cat //row/field[@name="filePath"]/@value' | xmllint --shell /home/drs/dms/gamThr.xml | awk -F'[="]' '{print $(NF-1)}') 
vlc --fullscreen "$myvar"

任何帮助使此工作正常进行的工作将不胜感激!

要选择上下文节点的text()节点,请使用text()节点测试:

//row/field[@name="filePath"]/text()

使用--xpath的选项xmllint传递的XPath:

xmllint --xpath '//row/field[@name="filePath"]/text()' /home/drs/dms/gamThr.xml

最后,您的脚本应如下所示:

#!/bin/bash

myvar=$(xmllint --xpath '//row/field[@name="filePath"]/text()' /home/drs/dms/gamThr.xml) 
vlc --fullscreen "$myvar"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM