使用 Bash 将 XML 数据拆分为变量

Noe*_*uli 5 scripting xml curl xmllint variable

我正在尝试从服务下载一些文件。这些文件位于 XML 文件中。XML 文件可以有一个文件或多个文件可供下载。但是,现在我的脚本有问题。我不知道如何将 XMLLINT 中的字符串拆分为数组,以便我可以单独下载每个文件。

我需要将字符串拆分为几个变量,然后下载 URL 字符串的每个文件。

但是文件 201701_1 不会重复,因此,我使用 curl 下载它们没有任何问题。但是文件coverage.zip 重复并且它们被curl 覆盖。我这样做:然后我做 curl 来下载单个文件。

curl -O -b cookie $URL 
Run Code Online (Sandbox Code Playgroud)

目前,我的脚本如下:

while read edition; do   XML="<?xml version=\"1.0\"
encoding=\"UTF-8\"?> <download-area>   <files>
    <file>
      <url>https://google.com/411/201701_01_01.zip</url>
    </file>
    <file>
      <url>https://google.com/411/201701_01_02.zip</url>
    </file>   </files> </download-area>
    "
    URL=$(echo $XML | xmllint --xpath \
    "/*[name()='download-area']/*[name()='files']/*[name()='file']/*[name()='url']/text()" -)

    echo "URL:: " $URL

done < $LATEST_EDITION
Run Code Online (Sandbox Code Playgroud)

LATEST_EDITION 只是一个带有行的文件。

我的问题是:如何将 VAR_1 和 VAR_2 拆分为多个 URL,以便我可以单独下载它们?如何防止coverage.zip 被覆盖?

小智 1

尝试类似的方法:

declate -a url_array
url_array=(`echo $XML | grep -o "http.*zip" | tr '\n' ' '`)
Run Code Online (Sandbox Code Playgroud)