【发布时间】:2017-03-25 02:58:12
【问题描述】:
注意:这里有无数关于这个一般主题的问题,但我找不到针对我的具体问题的任何内容。
我正在从 http://rss.cnn.com/rss/cnn_latest.rss 解析 XML,我的解析器工作得很好,我得到了我正在寻找的一切。没问题。然后出乎意料地,经过数小时的正常工作……我开始遇到一些编码错误。
现在,我一直在做的是将源 XML 写入文件,然后解析该文件,如下所示。
File xmlfile = new File("cnnxml.txt");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(xmlfile);
奇怪的是这是 XML 文件的第一行,所以看起来编码实际上是 UTF-8
<?xml version="1.0" encoding="UTF-8"?>
以下是我在 Eclipse 中遇到的错误。
com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException:Invalid byte 3 of 4-byte UTF-8 sequence.
at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.invalidByte(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.read(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.load(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.scanData(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanCDATASection(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source)
at javax.xml.parsers.DocumentBuilder.parse(Unknown Source)
at getRSS.main(getRSS.java:87)
而且,这又是一整天的工作,然后我突然开始遇到问题。怎么回事?
【问题讨论】:
-
我有一个 IOException try-catch ,它仍然会产生这个问题。当您说序列在一个实体中时,您是指在 XML 的每个单独项目(在这种情况下,每个故事链接到 RSS)中吗?这将为我的理论提供一些可信度,即无论出于何种原因,在我的编码过程中,一些奇怪的东西被添加到网站上,并破坏了曾经工作的东西。
-
@JoopEggen 你的评论应该是一个答案。
标签: java xml eclipse parsing xml-parsing