我已經把自己陷入了一個有趣的(至少對我而言)問題。讓我們看一個XML文件:用bash解析XML對
<a>pair1a</a>
<b>pair1b</b>
<c>randomtext</c>
<a>pair2a</a>
<b>pair2b</b>
...
的<b>
標籤後<a>
標籤雲始終。我想得到的是<a>
和<b>
之間的內容保存並關聯在一起。我應該如何在bash中解決這個問題,以便以後我可以輕鬆訪問和管理數據?我想過關聯數組或將所有內容放在一個數組中,並使用某種分隔符將內容從b中分離出來(儘管這可能很棘手)。我的方法相當簡單,因爲將所有內容都寫入兩個數組,然後讓它們使用單個索引(順便說一句,我習慣了perl正則表達式,這就是grep使用的)。這可以做到簡單嗎?
a_Array=$(curl --silent -L $xml | grep -oP '(?<=<a>).*?(?=</a>)')
b_Array=$(curl --silent -L $xml | grep -oP '(?<=<b>).*?(?=</b>)')
你試過'xml_grep'嗎? – esauvisky
我知道這樣的工具,但不知道它是否會改變代碼結構,是嗎? – shookees
沒關係,我誤解了你的問題。這是一個很奇怪的xml btw。你的代碼有什麼問題? – esauvisky