Java “元素类型”;META";必须由匹配的结束标记“终止”</META>&引用;
当我试图用Java(在GAE服务器中)解析XML文件时,有时会出现以下错误:Java “元素类型”;META";必须由匹配的结束标记“终止”</META>&引用;,java,xml,google-app-engine,saxparser,Java,Xml,Google App Engine,Saxparser,当我试图用Java(在GAE服务器中)解析XML文件时,有时会出现以下错误: Parse:org.xml.sax.SAXParseException;行号:10;列数:3;元素类型“META”必须由匹配的结束标记“”终止。 然而,这并不是一直都在发生,有时还可以。程序正在解析xml文件,我对它们没有问题 这是我试图解析的XML文件: 任何帮助都将不胜感激。谢谢 更新: 谢谢你的回答。我将代码更改为另一个解析器,好消息是该文件现在正在正确解析。 糟糕的是,它现在换了另一个饲料,同样的问题,同
Parse:org.xml.sax.SAXParseException;行号:10;列数:3;元素类型“META”必须由匹配的结束标记“”终止。
然而,这并不是一直都在发生,有时还可以。程序正在解析xml文件,我对它们没有问题
这是我试图解析的XML文件:
任何帮助都将不胜感激。谢谢
更新: 谢谢你的回答。我将代码更改为另一个解析器,好消息是该文件现在正在正确解析。
糟糕的是,它现在换了另一个饲料,同样的问题,同一条线,尽管饲料完全不同,它以前工作得很好。有人能想到它为什么会发生吗?这看起来像是一个实时文档;i、 变化相当频繁的人。也没有
标记的迹象
对于正在发生的事情,我可以想出两种解释:
- 有时文档生成或创建不正确
- 有时,您会得到一个HTML错误页面,而不是预期的文档,并且XML解析器无法处理HTML的
中的
标记。这是因为(有效)HTML中的
标记不需要有匹配的/结束的
标记。(至少在某些版本的HTML中,不允许有结束标记。)
要追踪这一点,您必须捕获导致解析失败的精确输入。这不是XML,而是HTML: XML解析器不会解析它
我看到这个文件没有任何内容,看起来也不像是有效的RSS文件。可能发生任何服务器端错误。有两种解决方案:
而不是
应用程序.properties
文件中添加spring.thymeleaf.mode=LEGACYHTML5
pom.xml
或build.gradle
文件中添加了此依赖项
pom.xml
:
<dependency>
<groupId>net.sourceforge.nekohtml</groupId>
<artifactId>nekohtml</artifactId>
<version>1.9.21</version>
</dependency>
你能用这个标签吗
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
只需在每行meta后应用(/
)
使用时
而且确实有效您确定您的文件就是您发布的文件吗?它没有
meta
节点。您发布的文件的第10行也是空的问题是由Saxon引起的,请参阅“新元元素是Saxon提醒我们显式声明文件的字符集和编码的方式”
compile 'net.sourceforge.nekohtml:nekohtml:1.9.21'
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />