早上的人,
如果它们是可读的或xml安全的,我在使用xml中的REST服务返回某些值时会遇到两难的问题。考虑一下" Jill&鲍勃"
人类可读:
<ModelItem>
<Name>Jill & Bob</Name>
</ModelItem>
XML安全:
<ModelItem>
<Name>Jill & Bob</Name>
<link>http://myweb.com/showitem?id=123&order=desc</link>
</ModelItem>
如果我要在我的xml中返回一个url,这就变成了一个问题:
<ModelItem>
<Name>Jill & Bob</Name>
<link>http://myweb.com/showitem?id=123&porder=desc</link>
</ModelItem>
如果我然后返回xml安全网址,我的网址不再是有效网址:
$idProduct = 54;
$idImage = 26;
//$url = "http://192.168.1.124/prestashop/api/images/products/" . $idProducto . "/"; //Uncomment this line to add an image
$url = "http://192.168.1.124/prestashop/api/images/products/" . $idProduct . "/".$idImage."?ps_method=PUT";
$image_path = 'C:\\camisa2.jpg';
$key = 'XXXXXXXXXXXXXXXXXXX'; //Prestashop key
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
//curl_setopt($ch, CURLOPT_PUT, true); // Un-commet to edit an image
curl_setopt($ch, CURLOPT_USERPWD, $key.':');
curl_setopt($ch, CURLOPT_POSTFIELDS, array('image' => '@'.$image_path.';type=image/jpg'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
echo "<h3>Image Updated</h3>";
答案 0 :(得分:1)
您的“人类可读”示例不是有效的XML,因为单个&
不是有效的XML实体。
每个使用正确XML的客户都必须能够理解&
之类的XML实体(请注意;
!)并改为显示正确的字符。
答案 1 :(得分:0)
在从XML序列化或反序列化时,数据会有一个不可见的边框。因此,当您想要访问<link>
元素的值时,请确保您不在XML字符串中进行搜索,而是执行&#34; real&#34;在访问文本内容之前反序列化(到DOM或其他)。否则你必须自己处理字符/实体编码之类的事情,你不应该这样做,因为反序列化器应该为你做这类事情。