O loop abaixo encontra todos os nós onde o valor é igual a "DOWNLOADING" e captura o valor do nó "bytesdownloaded" correspondente. Eu esperava adlBytesDL1[0]
ser igual 147333120
(do primeiro nó correspondente); em vez disso, é igual 147333120147329024
(node1 e node2 consecutivos). Presumo que estou colocando meu índice no lugar errado, mas não consigo descobrir a que lugar ele pertence. Qualquer ajuda é muito apreciada. Eu tenho que usar XMLSTARLET com XPath 1.0.
for ((i=0; i<=(adlCount-1); i++)); do let "j=$i+1"
adlBytesDL1[$i]=$(xmlstarlet sel -t -m "//DownloadReport/ActionDownload/Downloads/Status[State='DOWNLOADING']" -v ..//BytesDownloaded['"$j"'] outputlive1.txt)
done
Aqui está um trecho do meu arquivo XML:
<?xml version="1.0" encoding="UTF-8"?>
<DownloadReport>
<ActionDownload>
<ActionID>2284879</ActionID>
<State>InProgress</State>
<Error></Error>
<IsActive>true</IsActive>
<Date>Sun, 30 Jun 2024 14:48:39 +0000</Date>
<Downloads>
<DownloadRequestTarget>
<ActionID>2284879</ActionID>
<Index>1</Index>
<Hashes hashAlgorithm="sha1">cefbabced653b2837ccd4bd906841390b1f87227</Hashes>
<Size>1869565324</Size>
<URL>http://servername.com/A13_13.26.9U3.zip</URL>
</DownloadRequestTarget>
<Status>
<State>DOWNLOADING</State>
<Timestamp>Sun, 30 Jun 2024 14:48:39 +0000</Timestamp>
<RetryCount>0</RetryCount>
</Status>
<Available>false</Available>
<BytesDownloaded>147333120</BytesDownloaded>
<TotalBytes>1869565324</TotalBytes>
<RetryLimit>5</RetryLimit>
</Downloads>
<Downloads>
<DownloadRequestTarget>
<ActionID>2284879</ActionID>
<Index>2</Index>
<Hashes hashAlgorithm="sha1">7e90e741c6ffd3476bdbae0262ff5a6aad49b925</Hashes>
<Size>1877973677</Size>
<URL>http://servername.com/A13_13.29.10U0.zip</URL>
</DownloadRequestTarget>
<Status>
<State>DOWNLOADING</State>
<Timestamp>Sun, 30 Jun 2024 14:48:39 +0000</Timestamp>
<RetryCount>0</RetryCount>
</Status>
<Available>false</Available>
<BytesDownloaded>147329024</BytesDownloaded>
<TotalBytes>1877973677</TotalBytes>
<RetryLimit>5</RetryLimit>
</Downloads>
</ActionDownload>
</DownloadReport>