【发布时间】:2018-07-03 17:06:01
【问题描述】:
见主题。这是在具有以下路径的文件上执行的(在 Mac OSX 上):
/Volumes/RobExtL/xmltests/hurz#1/hurz.xml
这是一个有效的路径。
该消息表明 JDK 解析器不知何故无法处理文件名中的“#”并切断以它开头的所有内容。
使用 JDOM2 可以毫无问题地解析相同的文件。我在这里不使用 JDOM2 的原因是,这是一个仅使用 SAX 确定根元素名称的实用程序,以避免解析潜在的大文件,在这种情况下,这对性能至关重要。
Stacktrace 应该包含所有剩余的必要信息。
Exception in thread "main" java.io.FileNotFoundException: /Volumes/RobExtL/xmltests/hurz (No such file or directory)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at java.io.FileInputStream.<init>(FileInputStream.java:93)
at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:90)
at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:188)
at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:623)
at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:189)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:805)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:770)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1140)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:655)
at de.lesspain.xml.XML.getRootElementName(XML.java:69)
at de.lesspain.xml.XML.hasRootElement(XML.java:80)
at XMLEntityManagerErrorTest.main(XMLEntityManagerErrorTest.java:15)
提前感谢您的任何提示, 最好的
【问题讨论】:
-
您是如何创建输入源的?在您的问题中添加该代码。