0

昨日、XML ファイルを読み込んでオブジェクトを作成する方法を学び始めたところです。わかりましたので、ここで聞いてみることにしました。

DBLoader: https://github.com/Valkryst/Project_02/blob/master/src/main/java/valkryst/item/DBLoader.java#L93

XMLParse:
https://github.com/Valkryst/Project_02/tree/master/src/main/java/valkryst/core/xml

DBLoader クラスは、XML ファイルからすべての変数をロードし、いくつかの条件に応じて Armor または Weapon オブジェクトを作成する場所です。XMLParse クラスは、XML ファイルを操作しているときに頻繁に必要になるいくつかのメソッドを保持するためのものです。

さて、私の2つの質問に...

  • DBLoader クラスでコードが現在どのように設定されているかを確認するには、「body」と「/body」である開始要素と終了要素以外の要素がないかどうかを確認するにはどうすればよいですか? (引用符を > と < に置き換えます。)

    • 空のファイルをロードするときのエラー「[致命的なエラー] :1:1 ファイルの途中終了」を解決するにはどうすればよいですか? キャッチされた後に for ループの現在の反復をスキップするための try-catch ブロックを既に含めました。(私の最初の質問が解決されれば、これはおそらく修正されるでしょう。)

他にも質問がありましたが、ここは午前 4 時頃なので、少し話が逸れてしまいました。最も重要な質問を 2 つだけにしておきます。

返信ありがとうございます。

編集:別のエラーが発生しましたが、疲れた心の状態では理解できないようです。主な質問を手伝っているときに誰かが問題を見つけた場合に備えて、この投稿に追加します.

DBLoader を実行すると、何らかの理由で常に「/XML/Items/Armor/Boot.xml」がスキップされるようです。ファイルが正常にロードされたときに通知する print ステートメントを追加しましたが、「/XML/Items/Armor/Sword.xml」のみが正常に終了しました。これらは私の 2 つのテスト XML ファイルであるため、正常にロードされるはずです。変に聞こえるかもしれませんが、私は眠りに落ちています。

4

1 に答える 1

0

まあ、それが最善の方法かどうかはわかりませんが、うまくいきます。これは for ループに入ります。

DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc;

   File f = new File(paths[i]);
   FileReader fr = new FileReader(f);
   if (fr.read()==-1){
       //file is empty
   }
   else{

        doc= dBuilder.parse(f);
        int n = rankdoc.getChildNodes().getChildNodes().getLength(); 
        // if n > 0, there's something else besides your root element

   }
   fr.close();
于 2013-08-21T07:31:24.723 に答える