Разбор xml в массив с помощью xmllint

У меня есть XML-файл с несколькими элементами , мне нужно извлечь атрибуты из каждого узла и поработать с ними.

Можно ли загрузить их в массив, используя ksh и xmllint?

Это то, что у меня есть:

XML-файл:

<?xml version="1.0"?>
<main>
  <resources>
        <db>
           <table_name tableid="001" user="mike">customer</table_name>
        </db>
    <db>
           <table_name tableid="002" user="david">orders</table_name>
        </db>
   </resources>
</main>

скрипт:

#!/usr/bin/ksh

tbid="$(echo "cat /main/resources/db/table_name/@tableid" | xmllint --shell data.xml )"
username="$(echo "cat /main/resources/db/table_name/@user" | xmllint --shell data.xml )"

echo $tbid
echo $username

Вывод:

/ > ------- tableid="001" ------- tableid="002" / >
/ > ------- user="mike" ------- user="david" / >

в конце концов, я хочу получить своего рода двумерный массив:

arr[0],[0]=001
arr[0],[1]=mike

arr[1],[0]=002
arr[1],[1]=david

Примечания:
xpath не поддерживается в xmllint и не может быть установлен.
array может быть представлен любым другим способом, мне просто нужно уметь извлекать и выполнять некоторую работу.

0
17.12.2015, 17:10
0 ответов

Теги

Похожие вопросы