我已经把自己陷入了一个有趣的(至少对我而言)问题。让我们看一个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