使用JS或PHP从XML中提取复杂的URL

时间:2013-05-13 21:43:44

标签: php javascript xml

我使用API​​从数据库中提取数据; API将数据返回到XML文件中。

我可以使用PHP(file_get_contents()和file_put_contents())将API返回到我的服务器上的XML文件中。对于我几乎所有的字段,我能够解析我创建的XML文件并使用PHP或javascript操作它(即,我已成功完成)。

我需要调用的一个字段值是一个自动下载图像文件的复杂URL。我可以使用API​​调用该字段,并将其与其余字段一起放入XML文件中。

但是,PHP解析器(simplexml_load_file())或Javascript解析器(XMLHttpRequest())都无法使用复杂的URL字段读取XML文件。我知道我有用于解析的编写代码,因为就像我说的那样,我可以用这些解析器成功地操纵任何其他字段。

我如何才能进入这个代理商的照片领域?

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<results count="4">
        <row id="14" created="2013-04-07 21:43:59" updated="2013-05-05 19:12:21">
            <agencyPhoto>https://fw.civicore.com/vtmentoring/index.php?downloadFile=1&table=agencies&field=agencyPhoto&check=969ac322f0347d4358bd3a7852b7b282&key=14</agencyPhoto>
        </row>
</results>

2 个答案:

答案 0 :(得分:1)

您的XML看起来不合适。该网址包含非法的未转义&个字符。它们应该转义为&amp;或者放入CDATA。首先解决这个问题然后继续。

所以要么

<agencyPhoto>https://fw.civicore.com/vtmentoring/index.php?downloadFile=1&amp;table=agencies&amp;field=agencyPhoto&amp;check=969ac322f0347d4358bd3a7852b7b282&amp;key=14</agencyPhoto>

<agencyPhoto><![CDATA[https://fw.civicore.com/vtmentoring/index.php?downloadFile=1&table=agencies&field=agencyPhoto&check=969ac322f0347d4358bd3a7852b7b282&key=14]]></agencyPhoto>

答案 1 :(得分:1)

可能是&符号(&)。尝试用&amp;替换它们 即

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  <results count="4">
    <row id="14" created="2013-04-07 21:43:59" updated="2013-05-05 19:12:21">
        <agencyPhoto>https://fw.civicore.com/vtmentoring/index.php?downloadFile=1&amp;table=agencies&amp;field=agencyPhoto&amp;check=969ac322f0347d4358bd3a7852b7b282&amp;key=14
</agencyPhoto>
    </row>
</results>