0

在开始之前,我已经阅读了以下讨论:

XML 解析错误:格式不正确

XML 格式不正确的错误

错误:解析 XML 时出错:格式不正确(无效令牌)...?

所有这些问题似乎都不适用于我的问题。

我已经构建了一个带有$xml=simplexml_load_file('somefile.xml');函数的 php 文件,用于构建产品展示、商家附属网站。

然后我编码了一个(几个)$feed(s),echo,整个九码。

所有 XML 数据都是关于特定产品的信息(产品名称、描述、价格、尺寸、图片 url、其他关键字相关数据等)。

一个数据条目的示例是:

<?xml version="1.0" encoding="utf-8"?>
<root>
    <product>
        <productName>Name</productName>
        <productCode>someCode</productCode>
        <productDescription>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.</productDescription>
        <productSort>someSort</productSort>
        <productCategory>someCategory</productCategory>
        <productUrl>http://www.someMerchantUrl.com/someFolderOrCategory/someProduct</productUrl>
        <productImageUrl01>http://www.someMerchantUrl.com/imageOne.jpg</productImageUrl01>
        <productImageUrl02>http://www.someMerchantUrl.com/imageTwo.jpg</productImageUrl02>
        <productImageUrl03>http://www.someMerchantUrl.com/imageThree.jpg</productImageUrl03>
        <productPrice>£26.50</productPrice>
        <productPriceSale></productPriceSale>
        <deliveryCost>$5.00</deliveryCost>
        <deliveryMethod>courier</deliveryMethod>
        <availability>In Stock</availability>
        <purchaseAgreement>http://www.someMerchantUrl.com/terms-and-conditions.html</purchaseAgreement>
        <mainColour>blue</mainColour>
        <secondaryColour>black</secondaryColour>
        <keyword01>keywordOne</keyword01>
        <keyword02>keywordTwo</keyword02>
        <keyword03>keywordthree</keyword03>
    </product>
</root>

一切都通过产品链接的示例 URL 及其图像位置进行了完美测试。

只有在插入实际的深层链接 URL(“点击重定向”编码)后才会弹出解析错误。

所以,我得到的错误是:

XML Parsing Error: not well-formed
Location: http://www.someAffiliateWebSite.com/productsXML/MainPageProducts.xml
Line Number 11, Column 68:
<productUrl>http://www.awin1.com/cread.php?awinmid=XXXX&awinaffid=XXXXXX&clickref=&p=http%3A%2F%2Fwww.someMerchantWebSite.com%2Fcatalog%2Fproduct.xml%3Fproduct_id%3D2577714%3Bcategory_id%3D2003473</productUrl>
---------------------------------------------------------------------------------^

((会员网络是Affiliate Window,商家和会员ID显然不是X,域名显然不是这里的。))

所以,通过演绎(我认为这是演绎推理......无论如何)我认为深度链接 URL 语法中有一些有趣的东西,因为在我添加“点击重定向”链接之前它工作得很好。

我看到它为我提供了有关解析错误位置的具体信息,但由于我在 Web 开发方面明显迟缓,这没什么用。

那么有人能在这里找到汤里的苍蝇吗?

谢谢!

/布莱恩

4

2 回答 2

3

Xml 规范不允许纯形式的“&”。见http://www.w3.org/TR/xml/#syntax

使用 CDATA 封装 url,然后应该可以正常工作

编辑:如果您确定没有任何其他有问题的字符,只需对 to 进行字符串替换&&amp;足够了。

于 2012-09-09T10:56:29.977 回答
0

您必须正确转义 XML 中的 URL。

请参阅:我需要在 XML 文档中转义哪些字符?

于 2012-09-09T10:53:24.473 回答