У меня есть 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 может быть представлен любым другим способом, мне просто нужно уметь извлекать и выполнять некоторую работу.