最近我在运行代码时遇到了错误
我正在使用此代码创建文档文件
DocumentBuilderFactory bFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = bFactory.newDocumentBuilder();
Document doc = (Document) dBuilder.parse(xmlfile);
我收到此错误
线程中的异常" main" java.lang.ClassCastException: com.sun.org.apache.xerces.internal.dom.DeferredDocumentImpl不能 转发到rss.RSS.main的javax.swing.text.Document(RSS.java:72)
C:\用户\用户\应用程序数据\本地\的NetBeans \缓存\ 8.2 \执行人-片段\ run.xml:53: Java返回:1
BUILD FAILED(总时间:0秒)
我对编程不熟悉,但我有一项任务要做。如果你能提供帮助我会很高兴
答案 0 :(得分:1)
以下行的导入似乎是javax.swing.text.Document
:
Document doc = (Document) dBuilder.parse(xmlfile);
一种可能的解释是您的源文件正在使用以下两个类:
javax.swing.text.Document
org.w3c.dom.Document
如果您尝试在同一源文件中同时执行Swing和XML dom,则此解释是有意义的。解决方法是在此处使用完全限定的类名,例如
org.w3c.dom.Document doc = (org.w3c.dom.Document) dBuilder.parse(xmlfile);
请注意,您可以使org.w3c.dom.Document
成为主要导入,然后在任何地方使用javax.swing.text.Document
作为Swing文档类。在实践中,您可能希望在任何地方保持一致,即对所有Swing或所有org.w3c.dom
类使用完全限定。大多数类可能是您选择导入的类,这将使您无需输入最多的包名。
答案 1 :(得分:0)
看起来你要从错误的包中导入类而不是你需要的XML解析,请参考下面的代码从右包中导入类。
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.w3c.dom.Document;
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = (Document) dBuilder.parse(xmlfile);