2013-06-25 136 views
0

我試圖在xml feed中插入像「image id = 1」這樣的標籤,並使用1到10的ids,但是使用下面的代碼得到錯誤的XML格式錯誤,有人可以告訴我爲什麼?XML標籤錯誤格式

$line .='<images>' . $crlf; 
$i=0; 
foreach($images as $img) 
    if ($i < 10) 
    { 
     $i +=1; 
     $line .=' <image id=<![CDATA['.$i.']]>>' . $crlf; 

     $line .=' <image><![CDATA['.$imageUrl.$img->name.']]></image>' . $crlf; 
    } 
$line .=' </images> ' . $crlf;  

我也嘗試過使用

$line .=' <image id='.$i.'>' . $crlf; 

,我得到XML錯誤......

這是飼料應該什麼樣子:

<images> 
    <image id="1"> 
     <url>http://www.mywebsite/image?id=1&.jpg</url> 
     <title> 
      <en>FOTO 01</en> 
     </title> 
    </image> 
    <image id="2"> 
     <url>http://www.mywebsite/image?id=2&.jpg</url> 
     <title> 
      <en>FOTO 02</en> 
     </title> 
    </image> 
+0

的問題是,每個飼料項目可以有最大10張圖片,所以我需要foreach語句減少到10個圖像,並且每個圖像必須從1號到10標籤裏面像等。 ....... – ol30cean0

+0

我很肯定你有一個語法錯誤。什麼是你得到的XML錯誤? – stackErr

+0

我得到錯誤的XML格式,我翻譯這從葡萄牙語,葡萄牙語錯誤是:錯誤沒有XML:formataçãoincorreta – ol30cean0

回答

1

這應該工作。

$line .='<images>' . $crlf; 
$i=0; 
foreach($images as $img) { 
    if ($i < 10) 
    { 
     $i +=1; 
     $line .= ' <image id="'.$i.'">' . $crlf; 
     $line .= '  <url>'.$imageUrl.$img->url.'</url>' . $crlf; 
     $line .= '  <title><en>'.$imageUrl.$img->title.'</en></title>' . $crlf; 
     $line .= ' </image>' . $crlf; 
    } 
} 
$line .='</images>' . $crlf; 
+0

嗨,感謝您的幫助,其實URL部分$ imageUrl。$ img - >名稱。必須在標籤內... – ol30cean0

+0

@ ol30cean0只需將其添加即可。這是非常簡單的字符串連接... – Shikiryu

+0

是的,但我不是程序員我的朋友.....我在這裏嘗試沒有運氣,將繼續嘗試,謝謝.. – ol30cean0

1

XML需要引號(單或雙)所有屬性,不像HTML,它並不總是需要它們。您的代碼看起來像缺少id屬性中的引號。

如果我有我的PHP語法正確,我相信不是:

$line .=' <image id='.$i.'>' . $crlf; 

你可以這樣做:

$line .=' <image id=\''.$i.'\'>' . $crlf; 
+0

謝謝,但不幸的是,隨着你的解決方案,我得到了一個不同的錯誤,它似乎希望圖像標記被關閉,在葡萄牙語錯誤是:Erro沒有processamento德XML:標記sem對應。 Esperada:。 – ol30cean0

+0

這意味着xml希望圖片標籤被關閉...... – ol30cean0

+0

HTML和XML之間的區別也是如此:在XML中,所有標籤都必須關閉。您可以通過執行'或''來關閉您的標籤 - 兩者基本相同。 –