Android中String.xml: The reference to entity "timestamp" must end with the ';' delimiter

本文介绍了在XML文件中设置包含特殊字符的URL时遇到的编码问题及解决方法。通过对比错误与正确的字符串定义,解释了如何正确转义URL中的特殊字符。

The reference to entity "timestamp" must end with the ';' delimiter

添加资源文件String.xml时出问题了:

The reference to entity "timestamp" must end with the ';' delimiter

这个错误就是 String.xml中设置链接URL的问题   

<string name="recommend_app_link">http://14.31.15.88/interface/tyCloud.php?sign=Njk4ZTM5OGNjYzI5MTAzOGMzZWY2NWY5NDZkOGI3MGQ=&timestamp=20130425000000&type=rank&rid=3</string>
 正确的如下:

<string name="recommend_app_link">http://14.31.15.88/interface/tyCloud.php?sign=Njk4ZTM5OGNjYzI5MTAzOGMzZWY2NWY5NDZkOGI3MGQ=&amp;timestamp=20130425000000&amp;type=rank&amp;rid=3</string>
 这大概是由xml文件中的编码规则决定要这么变换。

在xml文件中有以下几类字符要进行转义替换:

&lt;

<

小于号

&gt;

>

大于号

&amp;

&

&apos;

'

单引号

&quot;

"

双引号

`org.xml.sax.SAXParseException: The entity name must immediately follow the '&' in the entity reference` 错误通常是由于 XML 文件中存在不符合 XML 实体引用语法的问题导致的。以下是一些解决该问题的方法: ### 检查 XML 文件中的实体引用 在 XML 中,实体引用以 `&` 开头,以 `;` 结尾。例如,`&` 表示 `&` 字符。如果在 `&` 后面没有紧跟有效的实体名称,就会抛出该异常。需要检查 XML 文件,确保所有的实体引用都符合语法规则。 ```xml <!-- 正确的实体引用 --> <element>Some text with & symbol</element> <!-- 错误的实体引用,会引发异常 --> <element>Some text with & wrong reference</element> ``` ### 转义特殊字符 如果 XML 文件中包含特殊字符,如 `&`、`<`、`>` 等,需要将它们转义为对应的实体引用。 ```python import xml.sax.saxutils text = "Some text with & symbol" escaped_text = xml.sax.saxutils.escape(text) print(escaped_text) # 输出: Some text with & symbol ``` ### 检查 XML 文档的编码 确保 XML 文档的编码设置正确,并且文件以指定的编码保存。可以在 XML 文件的开头指定编码: ```xml <?xml version="1.0" encoding="UTF-8"?> <root> <element>Some text</element> </root> ``` ### 验证 XML 文件 使用 XML 验证工具(如 `xmllint`)来检查 XML 文件是否存在语法错误。 ```bash xmllint --noout your_file.xml ``` ### 检查 XML 解析器的配置 确保 XML 解析器的配置正确,没有使用不兼容的设置。 ```java import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.helpers.DefaultHandler; public class XMLParserExample { public static void main(String[] args) { try { SAXParserFactory factory = SAXParserFactory.newInstance(); SAXParser parser = factory.newSAXParser(); DefaultHandler handler = new DefaultHandler(); parser.parse("your_file.xml", handler); } catch (Exception e) { e.printStackTrace(); } } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值