我正在尝试在xml Feed中插入像“image id = 1”这样的标签,并且使用1到10的ID,但是使用以下代码我得到错误的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错误......
这就是Feed的样子:
<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 :(得分:1)
XML要求所有属性使用引号(单引号或双引号),这与HTML不同,后者并不总是需要它们。您的代码看起来缺少id
属性上的引号。
如果我的PHP语法正确,我相信而不是:
$line .=' <image id='.$i.'>' . $crlf;
你可以这样做:
$line .=' <image id=\''.$i.'\'>' . $crlf;
答案 1 :(得分: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;