我有一种从不同url解析RSS的方法,效果非常好:
例如:https://www.clarin.com/rss/lo-ultimo/
但是在其中一个url中(https://www.cio.com/category/mobile/index.rss)在该web的所有RSS中,当我执行代码时,控制台向我显示以下错误,解析器无法工作:
组织。xml。萨克斯。SAXParseException;行号:1;列数:1;文件过早结束。
我正在使用此方法解析RSS提要(代码的一部分):
try {
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
URL url = new URL("https://www.cio.com/category/mobile/index.rss");
URLConnection urlConnection = url.openConnection();
InputStream inputStream = urlConnection.getInputStream();
Document doc = dBuilder.parse(inputStream);
错误发生在最后一行-
在这段代码中,我正在从url解析RSS,奇怪的是,当我直接从文件(index.RSS)解析RSS时,我没有错误,而且解析效果很好,我使用以下方法进行解析:
File fXmlFile=新文件(“index.rss”)
DocumentBuilderFactory dbFactory=DocumentBuilderFactory。newInstance()
DocumentBuilder-dBuilder=dbFactory。newDocumentBuilder()
文档doc=dBuilder.parse(fXmlFile);
documentdoc=dBuilder。解析(输入流)
doc.getDocumentElement()
注意:
这是一个maven webapp项目。
- 部署在Tomcat 9.0服务器中。
- 当我按下网页主页中的按钮时,该方法运行。
我提到这一点是因为当我在一个简单的java项目中尝试时,解析器也可以很好地处理inputStream。
如果你能帮助我,我将不胜感激,谢谢!
我已经运行了下面的代码,它工作正常,没有错误。
public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException {
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
URL url = new URL("https://www.cio.com/category/mobile/index.rss");
URLConnection urlConnection = url.openConnection();
InputStream inputStream = urlConnection.getInputStream();
Document doc = dBuilder.parse(inputStream);
Element root = doc.getDocumentElement();
NodeList children = root.getChildNodes();
for (int i = 0; i < children.getLength(); i++) {
System.out.println(children.item(i));
}
inputStream.close();
}
然后,我添加了以下内容并尝试解析一个空文件:
File fXmlFile = new File("EmptyFile.xml");
inputStream = new FileInputStream(fXmlFile);
doc = dBuilder.parse(inputStream);
System.out.println(doc.getDocumentElement());
当文件为空(或仅包含XML处理指令)时,我收到了您收到的错误。当我添加根元素时,错误消失了。在我看来,这似乎证明了当inputStream(或者它正在流的东西)本质上是空的时,就会发生这个错误。这一理论似乎也得到了:org的支持。xml。萨克斯。SAXParseException:*有效*XML的文件过早结束。因此,我建议,如果您仍然收到此错误,请在URL上设置断点。。。然后继续查看连接是否正确。希望有帮助。
问题内容: 我在控制台中遇到这个问题,在控制台中尝试输出函数本身可以工作,但是输出变量或常量却行不通。 如您在此处看到的,尽管您认为var / let拥有的内容,但是Swift却以某种方式找不到它… 问题答案: 因此,事实证明过去可能存在一个错误,即当您添加Swift文件时,它会添加/询问一个Bridging标头,但不会将该行添加到您的项目中 这意味着您将保持这种状态 导致! 我只能找到原因,因为
我很抱歉,如果这是一个重复的问题--我找了一个文件,发现了很多类似的问题,但没有什么是完全相同的。 [错误]文件提前结束。http://api.dss.gov.au/dataCollection/dex的第1行?wsdl&type=xsd&file=文件%3a%2fc%3a%2ftfs%2fccsapps%2fdataCollection%2f分支%2fmr17.11%2fosb%2fdataCo
Be on your guard! If another disciple sins, you must rebuke the offender, and if the same person sins against you seven times a day, adn turns back to you seven times and says, 'I repent,' you must fo
我想分享 /Internal存储/aaa/bbb.dat文件到另一个应用程序通过FileProvider。但它出错了。 我已经将路径放入了provider\u path。xml并将提供程序放入清单文件中。 我希望gmail或midrop/shareme能够打开和bbb。dat文件附呈。但它出错了 显示 提供者路径。xml 我是根据这些帖子编写代码的 Android:自定义外部存储文件夹上的文件提供
演示清理调制解调器singUpForm不工作!!问题出在以下级别:Container content=BoxLayout。encloseY(新标签(“注册”、“LogoLabel”)、新FloatingHint(用户名)、createLineSeparator()、新FloatingHint(电子邮件)、createLineSeparator()、新FloatingHint(密码)、createL
<?xml version=“1.0”encoding=“UTF-8”?> ** 和xml文件的bebinning: <?xml version=“1.0”encoding=“UTF-8”?> ... 即将出现的错误: 原因:org.xml.sax.SAXParseException;行号:2;列号:1;Prolog中不允许包含内容。在org.apache.xerces.parsers.dompa