0

我正在尝试在 xml 提要中插入像“image id = 1”这样的标签,并且 id 从 1 到 10,但是使用以下代码出现错误的 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>
4

2 回答 2

1

XML 要求所有属性都使用引号(单引号或双引号),这与 HTML 不同,它并不总是需要引号。您的代码看起来缺少id属性上的引号。

如果我的 PHP 语法正确,我相信而不是:

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

你可以做:

$line .='   <image id=\''.$i.'\'>' . $crlf;
于 2013-06-25T14:31:18.940 回答
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;  
于 2013-06-25T14:53:32.650 回答