2017-07-31 5 views
0

私はドキュメントファイルを作成するには、このコードを使用しています私のコードエラーながら

を実行しながら、最近、私はエラーをのgettinてきた


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:\ Users \ユーザーユーザー\のAppData \ローカル\ NetBeansの\キャッシュ\ 8.2 \エグゼキュータ・スニペット\ run.xml:53: Javaが返さ:1

BUILDは(総FAILED時間:0秒)


私はプログラミングに慣れていませんが、私はやるべきことがあります。

Document doc = (Document) dBuilder.parse(xmlfile); 

一つの可能​​な説明は、ソースファイルは、次の2つのクラスの両方を使用していることです:あなたはそれを次の行に使用されているインポートがjavax.swing.text.Documentであることが表示されます

答えて

1

を助けることができれば、私は喜んでいるだろう。

javax.swing.text.Document 
org.w3c.dom.Document 

この説明は、同じソースファイルでSwing DOMとXML DOMの両方を実行しようとしている場合に意味があります。この問題を回避するには、ここで完全修飾クラス名を使用します。あなたはorg.w3c.dom.Document主要輸入を行い、その後、Swingのドキュメントクラスのためのどこでもjavax.swing.text.Documentを使用することができます

org.w3c.dom.Document doc = (org.w3c.dom.Document) dBuilder.parse(xmlfile); 

注意。実際には、すべてのSwingやすべてのorg.w3c.domクラスに対して完全修飾を使用するなど、どこでも一貫していたいと思うでしょう。ほとんどの場合、どんなクラスがインポートに使用されているかもしれないので、パッケージ名を一番入力する必要がなくなります。

+0

私は非常によく働いてくれてありがとう!しかし、要素を作成するときにも同じエラーが発生します。 '要素docElement =(Element)doc;' 私もorg.w3c.domを使用しましたが、動作しませんでした。 –

+0

衝突がない場合は、まず 'import org.w3c.dom.Element'を使用してください。さもなければあなたのコードの 'Element'とFQDNを使用してください。 –

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);