【发布时间】:2012-08-07 13:22:48
【问题描述】:
我有一个 xml 文件。
<?xml version="1.0" encoding="UTF-8"?>
<channel>
<item>content with special character é</item>
</channel>
假设上面是 xml 文件,除了来自产品目录的内容,还有更多的标签和内容。这是使用以下过程创建的:
- 从冷融合文件调用数据库
- 从数据库中获取内容并返回coldfusion文件
- 在 Coldfusion 中创建一个 xml 文件(只需使用文件名,例如:“filename.xml”)
- 通过在coldfusion中循环查询并将每个产品的产品添加到xml文件中,将内容写入文件
当我尝试在 Firefox 中打开文件时,这给了我错误(我测试 xml 文件解析的方式)。告诉我我有一些需要转义的特殊字符(“xml 格式不正确”或类似的东西)。所以我将 CDATA 标签放在这些 xml 标签中,这应该可以清除它,对吧? 它没有。它总是在特殊字符上绊倒,而不仅仅是为 xml 保留的字符(&、、..)。
这是我开始失去它的时候。在手动创建较小的xml文件(不是通过coldfusion)进行一些尝试和测试之后,我只需删除CDATA标签并插入上面的代码就可以使用它。 Firefox 可以很好地解析上述代码。 所以经过一番思考,我只是将错误文件的全部内容(原始文件)复制到了一个全新的手动创建的 xml 文件(.txt --> 重命名为 .xml),瞧,没有更多错误了。
有人可以向我解释一下,在这种情况下,从第一个复制到第二个内容完全相同的 2 个单独文件如何得到不同的解析。第一个在特殊字符上显示多个错误,第二个对这些完全没有问题..? 拜托,有人,在我在这里发狂之前.. >_>
编辑 1: 当我说特殊字符时,我特指的是 utf-8 字符。我不是在谈论为 xml 保留的字符(&、、...),我已经将这些字符转义了。
【问题讨论】:
-
创建文件的代码是什么样的?
标签: xml encoding coldfusion xml-parsing cdata