如何处理XML中URL中的特殊字符

4

我有一个XML元素,其中之一的子项是一个url,例如:
http://maps.google.com/FortWorth&Texas,more+url;data

在解析时,我遇到了两个问题:
1)(&)符号会破坏整个解析过程,除非用&amp替换它(这将破坏url)
2)逗号(,)试图将我的解析器发送到下一个子项,导致url不完整。

我该怎么办才能解决这个问题?
我正在使用Javascript和PHP。

2个回答

12

这实际上是最好的解决方案。+1! - jwueller
这太悲催了。XML 应该是由有效元素和属性组成的结构化数据。CDATA 让程序员变得懒惰。它基本上告诉 XML 解析器,“不要费心解析这个,这可能无效,只需忽略它”。 - Dmitri
+1 太棒了,网上没有找到更好的解决方案。@Dmitri:在我的情况下,普通用户输入URL到XML文件中,我只需要从中读取,那么这个解决方案就非常完美。 - binball

1

在XML中有一些无效的字符 - 您需要在xml文档中对这些字符进行“转义”。

这些字符及其“转义”版本如下:

>  >
<  &lt;
&  &amp;
'   &apos;
"   &quot;

这是正确的,但是您应该提供如何对它们进行编码的示例,例如使用htmlentities()和html_entity_decode()在检索时。 - El Yobo
@El Yobo - 抱歉,我不是PHP程序员 :) - Greg Sansom

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接