[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Получить значение из повторяющихся тегов XML
nikkis
Прошу помощи, так как PHP не знаю (разовая задача).

Есть XML-файл, из которого в HTML-страницу с помощью php-скрипта выводятся определенные значения (скрипт получил готовый)

Пример XML
<?xml version="1.0" encoding="UTF-8"?>
<Book>
<Userfields>
<Name
ID="7">ISBN</Name>
<Name
ID="1">Масса</Name>
<Name
ID="2">Размеры</Name>
<Name
ID="4">Томов</Name>
</Userfields>
<ID>
75287</ID>
<Title>
Лев Толстой: Война и мир: Роман-эпопея</Title>
<Description>

<![CDATA[Роман в 4-х томах]]>
</Description>
<Autor>
Толстой Лев Николаевич</Autor>
<Pages>
968</Pages>
<Cover>
Твердый переплет</Cover>
<UserFields>
<UserField>
<ID>
7</ID>
<Name>
ISBN</Name>
<Value>
5-699-08660-0</Value>
</UserField>
<UserField>
<ID>
1</ID>
<Name>
Масса</Name>
<Value>
2226 г.</Value>
</UserField>
<UserField>
<ID>
2</ID>
<Name>
Размеры</Name>
<Value>
275x190x55 мм</Value>
</UserField>
<UserField>
<ID>
4</ID>
<Name>
Томов</Name>
<Value>
4 тома</Value>
</UserField>
</UserFields>
</Book>


кусок php-кода который нужно дополнить:
<?php
foreach ($xml->Book as $book)
{
$id = $book->ID;
if ($id==$select)
{
$title = iconv('UTF-8', 'windows-1251', ($book->Title)); // получаем значение тега <Title>
$description = iconv('UTF-8', 'windows-1251', ($book->Description));// получаем значение тега <Description>
$autor = iconv('UTF-8', 'windows-1251', ($book->Autor));
$pages = $book->Pages;
$bookid = $book->ID;
$cover = $book->Cover;
$isbn = $book->UserFields->UserField->Value; // Пытаюсь "вытащить" значение тега <ISBN><Value>????<Value></ISBN>
break;
}
}

?>

Переменные $cover, $title и т.п. далее используются в HTML-странице.
получаем список типа
"Лев Толстой: Война и мир: Роман-эпопея
Автор: Лев Николаевич Толстой
и т.д."

Пытаюсь задать переменные для тегов UserField, с тегов 1 уровня понял как значения берутся, а вот глубже - проблема.
Строка "$isbn = $book->UserFields->UserField->Value;" выдает результат с самого первого UserField, причем где-то сначала по списку может стоять и не "ISBN", а например "Масса", получается неоднозначный результат.

Подскажите, пожалуйста, как правильно задать переменные для тегов Userfild, в соответствии с их ID?
Как видно у каждого UserField есть свой уникальный ID и Name
Нужно как-то задать условие "Если в Userfild тег ID имеет значение "7", то взять значение value для переменной $isbn" и так далее, для каждого.

Буду благодарен всем, кто поможет.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.