最近我在运行我的代码时遇到了错误
我正在使用这段代码来创建文档文件
DocumentBuilderFactory bFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = bFactory.newDocumentBuilder();
Document doc = (Document) dBuilder.parse(xmlfile);
我遇到了这个错误
Exception in thread "main" java.lang.ClassCastException: com.sun.org.apache.xerces.internal.dom.DeferredDocumentImpl cannot be cast to javax.swing.text.Document at rss.RSS.main(RSS.java:72)
C:\Users\user\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1
BUILD FAILED (total time: 0 seconds)
我不太熟悉编程,但我有任务要做。如果你能帮上忙,我会很高兴
最佳答案
似乎用于以下行的导入是 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
类使用完全限定。最常用的类可能是您选择导入的类,这将使您不必输入最多的包名称。
关于java - 在 Java 中使用 XML 解析器创建文档变量时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45406481/