org.xml.sax.SAXParseException: XML 声明可能只能从实体开始。

04-10-11 zb1015
org.xml.sax.SAXParseException: XML 声明可能只能从实体开始。

是不是说明,xml档不正确呢?

banq
2004-10-11 11:03
不一定,IE浏览器阅读XML经常出现这个问题。需要规定DTD

zb1015
2004-10-11 15:21
是这样的,读取正确xml是没有问题的,但是现在调用另一方的url接口时,在IE中是确实是xml格式的,但是读到inputstream时sax解析就出错了。

但现在这个问题,是我这边的错误,还是另一方的错误呀,真是烦死了。

napoleonn
2004-10-18 16:51
xml中间出现特殊字符 比如url中非常普遍的 & 就会出现这样的解析错误,解决方法是必须用 & 来代替 & 才会解析通过。

我今天在用hibernate的时候,写hibernate.cfg.xml配置文件的时候,写jdbc connection url 由于要配置mysql jdbc驱动使用utf8,所以我的url这么写的:jdbc:mysql://localhost:3306/gpms?useUnicode=true&characterEncoding=utf8

结果运行时候hibernate出现错误,实际是dom4j出现解析错误,幸好hibernate的log相当详细。

2004-10-18 16:36:03 net.sf.hibernate.cfg.Configuration getConfigurationInputStream

信息: Configuration resource: /hibernate.cfg.xml

2004-10-18 16:36:04 net.sf.hibernate.util.XMLHelper$ErrorLogger error

严重: Error parsing XML: /hibernate.cfg.xml(10) 下一个字符必须是";" 终止引用实体 "characterEncoding"。

2004-10-18 16:36:04 net.sf.hibernate.cfg.Configuration doConfigure

严重: problem parsing configuration/hibernate.cfg.xml

org.dom4j.DocumentException: Error on line 10 of document : 下一个字符必须是";" 终止引用实体 "characterEncoding"。 Nested exception: 下一个字符必须是";" 终止引用实体 "characterEncoding"。

at org.dom4j.io.SAXReader.read(SAXReader.java:355)

很显然问题就是这个& 字符,这时才想起来&是特殊字符,用&;代替就可以了。

napoleonn
2004-10-18 16:56
晕死,用& 代替&

网页上写一个& amp;真费劲啊。

猜你喜欢
2Go 1 2 下一页