2012-02-15 74 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 2012-02-15 06:29:24

+0

是的,那個'[0]'幾乎是將它限制在第一個。 – Anthony 2012-02-15 06:38:17

+0

@Tomalak我從安東尼得到了正確的答案,並且也編輯了這個問題。但我不能再問Stackoverflow的問題,因爲他們阻止我的問題投票不好,請幫助我使它工作,謝謝n advence .. – Wazan 2012-06-05 09:33:55

回答

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

我檢查了,發現循環問題 – Wazan 2012-02-15 06:34:36

+0

您遇到什麼循環問題?我本可以寫錯的。你有錯誤嗎? – Anthony 2012-02-15 06:40:43

+0

其實,我只是複製並粘貼我自己的代碼和你的示例xml,它工作正常。什麼循環問題? – Anthony 2012-02-15 06:44:07

0

遍歷所有由xmlDoc.getElementsByTagName('photo')返回的元素。

0

這條線:

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

獲取的第一張照片。然後你用它做事。

將其更改爲for循環,就像循環遍歷屬性一樣。