2013-06-12 1 views
0

Я использую библиотеку PHP SimpleXML для извлечения данных из существующего XML-файла на свой сайт и добавления его на HTML-страницу.Вытягивание данных из XML в мою HTML-страницу

Ниже приведен фрагмент из XML, который находится в https://media.vivastaff.com/designs/94341/xml-3042-1.xml:

<DTilt> 
    <frontSide imagePath="94341/20130510150043_ACXZ0001C-01.png"></frontSide> 
    <backSide imagePath="94341/20130510150043_ACXZ0001C-02.png"></backSide> 
</DTilt> 

Ниже приведен PHP код, я использую, чтобы вытащить данные XML:

<?php 
$eid = 94341; 
$pid = 3042; 
$ver = 1; 
$xmlPath = 'https://media.vivastaff.com/designs/' . $eid . '/xml-' . $pid . '-' . $ver . '.xml'; 
?> 

<div id="cardFront"><img src="https://media.vivastaff.com/designs/<?php echo simplexml_load_file("$xmlPath")->DTilt->frontSide->imagePath; ?>"</div> 

Это не вытягивая данные из файла XML, которые у меня есть, и ничего не возвращает. Я пробовал много вариантов этого, но ничего не работает. Возможно, я не буду правильно указывать «imagePath», но не обязательно должен был идти отсюда. Что я делаю неправильно?

+0

Вы, в основном спрашивают, как получить доступ к узлу атрибута в SimpleXML: [? Как получить атрибут с SimpleXML] (http://stackoverflow.com/q/3410520/367456) - и перед использованием SimpleXML чтения об основном использовании: http://php.net/simplexml.examples-basic – hakre

ответ

1

Убедитесь, что ваш URL работает, кроме того, что приведенный ниже код работает отлично, чтобы прочитать вышеупомянутые XML-данные.

<?php 
$eid = 94341; 
$pid = 3042; 
$ver = 1; 
$xmlPath = 'https://media.vivastaff.com/designs/' . $eid . '/xml-' . $pid . '-' . $ver . '.xml'; 

$dom = new DOMDocument(); 
$dom->load($xmlPath); 
$frontSide = $dom->getElementsByTagName('frontSide'); 
$image = $frontSide->item(0)->getAttribute('imagePath'); 
?> 
<div id="cardFront"><img src="https://media.vivastaff.com/designs/<?php echo $image; ?>"</div> 
+0

Это сработало отлично. Думаю, мне нужно использовать DOM для загрузки вместо simplexml_load_file. Благодарю. – Matto

+0

@Matto У меня нет опыта работы с библиотекой SimpleXML, но я долгое время использовал DOM и, кроме того, был встроен в большинство PHP-сборников, с которыми легко работать. Рад, что это сработало для вас. – Prix

+0

Да, с SimpleXML это двухстрочный или однострочный, но он не такой четкий и гибкий, как DOMDocument. Но оба близкие библиотеки-сестры, и, как обычно, существует несколько способов сделать что-то. – hakre

Смежные вопросы