Рекурсивный обход xml средствами php

1080
01 ноября 2017, 04:12

Всем здравствуйте! Следующая задача. Есть неважно какой xml файл, но будем рассматривать на примере этого:

 <?xml version="1.0" ?>
<?xml-stylesheet type="text/xsl" href="example1.xsl"?>
<items>
<item id="26277932">
<genre>книга </genre>
<type>монография</type>
<language>RU</language>
<yearpubl>2016</yearpubl>
<cited>0</cited>
<titles>
<title lang="EN">
CSE's White
</title>
<title lang="RU">
Белая книга
</title>
</titles>
<grnti>195100</grnti>
<risc>yes</risc>
<corerisc>no</corerisc>
<titleaddinfo>Обновленная версия 2012 г.</titleaddinfo>
<responsibility>
Council of Science Editors, Ассоциация научных редакторов и издателей
</responsibility>
<placepubl>Екатеринбург</placepubl>
<isbn>978-5-7996-1742-4</isbn>
<pagesnumber>132</pagesnumber>
<publisher>Уральский университет</publisher>
<authors>
<author num="1" lang="EN">
<lastname>Petrov</lastname>
<initials>V.N.</initials>
<authorid>663665</authorid>
<email>Petrov@ex.ru</email>
<role>переводчик</role>
<affiliations>
<affiliation num="1" lang="EN">
<orgname>Association of Science Editors and Publishers</orgname>
<orgid>15039</orgid>
<country>RUS</country>
<town>Moscow</town>
<address>20, Zeleniy prospectus, 111397</address>
</affiliation>
</affiliations>
</author>
<author num="1" lang="RU">
<lastname>Петров</lastname>
<initials>Вадим Николаевич</initials>
<authorid>663665</authorid>
<email>Petrov@ex.ru</email>
<role>переводчик</role>
<affiliations>
<affiliation num="1" lang="RU">
<orgname>Ассоциация научных редакторов и издателей</orgname>
<orgid>15039</orgid>
<country>RUS</country>
<town>Москва</town>
<address>111397, г. Москва, Зеленый проспект, д. 20.</address>
</affiliation>
</affiliations>
</author>
<author num="2" lang="EN">
<lastname>Ivanov</lastname>
<initials>N.A.</initials>
<authorid>98887</authorid>
<email>Ivanovna@ex.ru</email>
<role>переводчик</role>
<affiliations>
<affiliation num="1" lang="EN">
<orgname>Association of Science Editors and Publishers</orgname>
<orgid>15039</orgid>
<country>RUS</country>
<town>Moscow</town>
<address>20, Zeleniy prospectus, 111397</address>
</affiliation>
</affiliations>
</author>
<author num="2" lang="RU">
<lastname>Иванов</lastname>
<initials>Николай Алексеевич</initials>
<authorid>98887</authorid>
<email>Ivanovna@ex.ru</email>
<role>переводчик</role>
<affiliations>
<affiliation num="1" lang="RU">
<orgname>Ассоциация научных редакторов и издателей</orgname>
<orgid>15039</orgid>
<country>RUS</country>
<town>Москва</town>
<address>111397, г. Москва, Зеленый проспект, д. 20.</address>
</affiliation>
</affiliations>
</author>
</authors>
<abstracts>
<abstract lang="RU">
Данное издание представляет собой перевод на русский язык экспертного доклада Совета научных редакторов по поддержке принципов добросовестности в журнальных научных публикациях. Основное внимание в экспертном докладе сосредоточено на функциях в сфере ответственности участников издательского процесса (редакторов, авторов, рецензентов, спонсоров и издателей), а также на выявлении недобросовестного поведения исследователей и рекомендациях по борьбе с ним для редакторов. Целью публикации экспертного доклада является открытие диалога по этике издательской деятельности, а также обеспечение условий для информированного принятия решений редакторами. Издание будет полезно редакторам, рецензентам, авторам и издателям, всем, кто вовлечен в процесс издания научных журналов. Основные пункты экспертного доклада могут быть использованы в качестве руководства для усовершенствования инструкция для авторов и при разработке редакционной политики журналов.
</abstract>
</abstracts>
<codes>
<code type="ББК">Я52я43</code>
<code type="УДК">070.1(063)</code>
</codes>
</item>
</items>

Необходимо конвертировать в txt, сохраняя теги. Например: тег [пробел] поле. Используем рекурсивный обход. Подскажите, пожалуйста, с чего начать. Новичок в php.. Вывод должен выглядеть следующим образом:

genre книга  
type монография 
language RU 
yearpubl 2016 
cited 0 
READ ALSO
Payum: установить свой url для capture

Payum: установить свой url для capture

Я пытаюсь использовать Payum для приёма платежей на сайте

291
К общей сумме товара в корзине прибавить значение

К общей сумме товара в корзине прибавить значение

Подскажите как при формировании общей суммы в корзине товара прибавить значение тв поля этого товара файл mscarthandlerclass

254