Здравствуйте! Помогите с вопросом, пожалуйста. Имеется xml файл артистов, состоящий из тегов <artist></artist>, которые в свою очередь имеют разный набор атрибутов. Необходимо каждого артиста поместить в отдельный json файл. Как получить весь тег <artist></artist> целиком.
Показывай пример xml файл и как ты пытаешься его получить. В каком смысле? Там есть вложенные теги или нужно все атрибуты получить? Может содержание?
Если есть файл: HTML: <artist> <id>123</id> <name>art1</name> <albums> <album> <id>1</id> </album> </albums> </artist> <artist> <id>124</id> <name>art2</name> </artist> То, необходимо получить всю информацию по артисту. Либо так: Код (Text): <artist> <id>123</id> <name>art1</name> <albums> <album> <id>1</id> </album> </albums> </artist> Либо так: Код (Text): <id>123</id> <name>art1</name> <albums> <album> <id>1</id> </album> </albums> Далее уже эту строку или xml файл хочу перевести в json для импорта в БД.
Подсказать, как узел получить xml. Есть ли функция какая-то? Или нужно по дочерним узлам идти?А как идти по ним, если вложенность большая и структура неизвестна? Вариант ниже ничего не дал PHP: $xml = simplexml_load_file('artist.xml'); foreach ($xml->artist as $artist) { $json = json_encode($artist); print_r($json); } --- Добавлено --- Пыталась прочитать файл таким образом: PHP: $file_handle=fopen("artist.xml","r"); while(!feof($file_handle)){ $line = fgets($file_handle); echo $line; } fclose($file_handle); Но выводит результат он без тегов, а просто сплошной текст из значений тегов.
ну если там в корне несколько тегов artist, то можно их обвернуть в общий artists например PHP: <?php $xmlstr =<<<EOF <?xml version='1.0'?> <artists> <artist> <id>123</id> <name>art1</name> <albums> <album> <id>1</id> </album> </albums> </artist> <artist> <id>124</id> <name>art2</name> </artist> </artists> EOF; $artistlist = simplexml_load_string($xmlstr); foreach ($artistlist->artist as $artist ) { echo $artist->name."<br>"; } ну так xml это о текстовый файл и fopen() тоже с текстом работает, у неё заявлены функция по разбору xml разве?
Пыталась прочитать файл просто А как быть, если структура и теги у всех артистов разные? И как потом перевести одного артиста в файл json? --- Добавлено --- Почему функция fopen() опускает символы <> и названия тегов? Почему не представляет все в виде строки?
fopen может читать файл и выдавать его содержимое, всё. Почему табуретка не летает? сделать цикл по $artist, в foreach можно получать имя ключа массива, имя свойства объекта, PHP: foreach ($artist as $key => $value) https://secure.php.net/manual/ru/control-structures.foreach.php $key имя тега будет содержать, $value значение для json https://secure.php.net/manual/ru/function.json-encode.php PHP: echo json_encode($artist);
Почему функция fopen() опускает символы У тега artist, есть тег albums, у которого есть свои вложенные теги. Что будет в таком случае выводиться?
@KatePl какой? В PHP должен интерпретироваться, а не компилироваться https://en.wikipedia.org/wiki/Interpreted_language --- Добавлено --- @KatePl показывай код который не заработал