Всем привет! Ситуация следующая. Необходимо написать конвертер из xml в txt и обратно из txt в xml. Я в php новичок, сделал следующим образом. Сразу скажу, что всё работает. НО объясню дальше. Пример xml Код (Text): <?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> Написал конвертер php в txt Код (Text): <?php header( "Content-Type: text; charset=UTF-8 \r\n" ); header( "Content-disposition: attachment; filename=library.txt" );// put your file name here $url = "2016.xml"; // xml file location with file name if (file_exists($url)) { $xml = simplexml_load_file($url); foreach($xml->item as $item) { $t_cnt = count($item->titles->title); $a_cnt = count($item->authors->author); $ab_cnt = count($item->abstracts->abstract); $c_cnt = count($item->codes->code); echo "\t\tGEN " . $item->genre . "\r\n"; echo "\t\tTYP " . $item->type . "\r\n"; echo "\t\tLAN " . $item->language . "\r\n"; echo "\t\tYEA " . $item->yearpubl . "\r\n"; echo "\t\tCIT " . $item->cited . "\r\n"; for ($i = 0; $i < $t_cnt; $i++) { echo "\t\t\tTIT " . $item->titles->title[$i] . "\r\n"; } echo "\t\tGRN " . $item->grnti . "\r\n"; echo "\t\tRIS " . $item->risc . "\r\n"; echo "\t\tCOR " . $item->corerisc . "\r\n"; echo "\t\tTIT " . $item->titleaddinfo . "\r\n"; echo "\t\tRES " . $item->responsibility . "\r\n"; echo "\t\tPLA " . $item->placepubl . "\r\n"; echo "\t\tISB " . $item->isbn . "\r\n"; echo "\t\tPAG " . $item->pagesnumber . "\r\n"; echo "\t\tPUB " . $item->publisher . "\r\n"; for ($i = 0; $i < $a_cnt; $i++) { $af_cnt = count($item->authors->author[$i]->affiliations->affiliation); echo "\t\t\tLAS " . $item->authors->author[$i]->lastname . "\r\n"; echo "\t\t\tINI " . $item->authors->author[$i]->initials . "\r\n"; echo "\t\t\tAUT " . $item->authors->author[$i]->authorid . "\r\n"; echo "\t\t\tEMA " . $item->authors->author[$i]->email . "\r\n"; echo "\t\t\tROL " . $item->authors->author[$i]->role . "\r\n"; for ($j = 0; $j < $af_cnt; $j++) { echo "\t\t\t\tORG " . $item->authors->author[$i]->affiliations->affiliation[$j]->orgname . "\r\n"; echo "\t\t\t\tORG " . $item->authors->author[$i]->affiliations->affiliation[$j]->orgid . "\r\n"; echo "\t\t\t\tCOU " . $item->authors->author[$i]->affiliations->affiliation[$j]->country . "\r\n"; echo "\t\t\t\tTOW " . $item->authors->author[$i]->affiliations->affiliation[$j]->town . "\r\n"; echo "\t\t\t\tADD " . $item->authors->author[$i]->affiliations->affiliation[$j]->address . "\r\n"; } } for ($i = 0; $i < $ab_cnt; $i++) { echo "\t\t\ABS " . $item->abstracts->abstract[$i] . "\r\n"; } for ($i = 0; $i < $c_cnt; $i++) { echo "\t\t\COD " . $item->codes->code[$i] . "\r\n"; } echo "\r\n\r\n"; } } ?> Итог - он работает, но только с файлами, который строго этой структуры и с такими же тегами. А нужно, чтобы конвертер работал с любым xml и конвертировал его в txt с тегами. Посоветуйте что-нибудь, пожалуйста.
А каков смысл сего действа? Честно, не догоняю) Xml > zip > xml смысл есть, если нужно упаковать/распаковать. А в тхт на кой парсить и обратно? Тем более xml и есть тхт)
Тогда как написал @alexpride1993 Геморное это дело, но решаемое. Для общего развития пойдёт, но передайте профессору, чтобы переходил на более лёгкие наркотики))