2012-02-15 6 views
-5

У меня есть файл XML, как это:Создание файла XML с Javascript или PHP

<bracelets> 
    <photo filename="b1.jpg" thumbnail="a1.jpg" description="aa" /> 
    <photo filename="b2.jpg" thumbnail="a2.jpg" description="aa" /> 
    <photo filename="b3.jpg" thumbnail="a3.jpg" description="aa" /> 
    <photo filename="b4.jpg" thumbnail="a4.jpg" description="aa" /> 
</bracelets> 

Я хочу, чтобы извлечь все имена изображений на страницу PHP.

Я в настоящее время используют это:

$bracelets = simplexml_load_file($bracelets_xml); 
     x = xmlDoc.getElementsByTagName('photo')[0].attributes; 
     for (i = 0; i < x.length; i++) { 
      document.write(x[i].childNodes[0].nodeValue); 
     }​ 

Но вот его только один образ, который я могу взять. Мне нужны все изображения для извлечения.

+5

Вы понимаете код, который вы написали? Я думаю, вы должны начать с выяснения того, что делает каждая строка, потому что это мгновенно ответит на ваш вопрос. – Tomalak

+0

Да, это '[0]' в значительной степени ограничивает его только первым. – Anthony

+0

@Tomalak У меня есть правильный ответ от Энтони и тоже редактировал этот вопрос. Но я не могу больше задавать вопрос из Stackoverflow из-за плохого голосования на вопрос, который они заблокировали меня. Пожалуйста, помогите мне заставить его работать, спасибо n advence .. – Wazan

ответ

1

Если PHP - это вариант, вы еще не просмотрели SimpleXML?

В вашем случае:

$bracelets_xml = <<<XML 
    <bracelets> 
      <photo filename="b1.jpg" thumbnail="a1.jpg" description="aa" /> 
      <photo filename="b2.jpg" thumbnail="a2.jpg" description="aa" /> 
      <photo filename="b3.jpg" thumbnail="a3.jpg" description="aa" /> 
      <photo filename="b4.jpg" thumbnail="a4.jpg" description="aa" /> 
    </bracelets> 
XML; 

$bracelets = new SimpleXMLElement($bracelets_xml); 

foreach($bracelets -> photo as $photo) { 
    $counter++; 
    echo "Photo " . $counter . ":\r\n"; 
    echo "Filename : " . $photo['filename'] . "\r\n"; 
    echo "Thumbnail : " . $photo['thumbnail']. "\r\n"; 
    echo "Description : " . $photo['description']. "\r\n"; 
} 

Очевидно, что выше вывод не то, что вы хотите, но вы можете вывести его, как вы в зависимости от контекста.

+0

Я проверил, Im geting looping Проблема – Wazan

+0

Вы получаете, что проблема петли? Я мог что-то перепутал. Вы получаете сообщение об ошибке? – Anthony

+0

На самом деле, я просто скопировал и вставил свой собственный код и ваш образец xml, и он отлично работает. Какая проблема с циклом? – Anthony

0

Петля через все элементы, возвращаемые xmlDoc.getElementsByTagName('photo').

0

Эта линия:

x=xmlDoc.getElementsByTagName('photo')[0].attributes; 

Получает первую фотографию. Затем вы делаете что-то с этим.

Измените это на цикл for, как тот, который у вас есть, для обхода атрибутов.