Я ищу решение для извлечения некоторого узла из большого XML-файла (используя xmlstarlet http://xmlstar.sourceforge.net/), а затем разобрать этот узел на массив php.
elements.xml
<?xml version="1.0"?>
<elements>
<element id="1" par1="val1_1" par2="val1_2" par3="val1_3">
<title>element 1 title</title>
<description>element 1 description</description>
</element>
<element id="2" par1="val2_1" par2="val2_2" par3="val2_3">
<title>element 2 title</title>
<description>element 2 description</description>
</element>
</elements>
Чтобы извлечь тег элемента с id="1" с помощью xmlstarlet, я выполняю эту команду оболочки...
xmlstarlet sel -t -c "/elements/element[id=1]" elements.xml
Эта команда оболочки выводит что-то вроде этого...
<element id="1" par1="val1_1" par2="val1_2" par3="val1_3">
<title>element 1 title</title>
<description>element 1 description</description>
</element>
Как я могу разобрать этот вывод оболочки в массив php?
Спасибо.
Я нашел http://php.net/manual/en/function.simplexml-load-string.php довольно полезен. Эта функция SimpleXML преобразует извлеченный фрагмент XML в объект SimpleXML.
xmlstarlet params parmas params | php -f params
? - person VolkerK   schedule 18.04.2010