Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

domの階層移動

こんにちわ。

javaでdomを使っているのですが
public class xml {
    Element element;
    
    /**
     * 上の階層へ
     */
    public void upStructure(){
        element = (Element)element.getParentNode();
    }
    
    /**
     * 下の階層へ
     *
     */
    public void downStructure(String tagName){
        element = (Element)element.getElementsByTagName(tagName);
    }
    /**
     * タグを追加する
     * @param tagName
     */
    public appendChild(String tagName){
        
    }
}

このようなクラスを作成し、element変数にデータを持たせておいて、appendChildで追加し、upStructure・downStructureで階層を変える。
といったことを実現したいと思い、コードを書いている所なのですがupStructure・downStructureを実行しても階層が移動しません。

どうすれば階層を移動させることができるでしょうか?
宜しく願いします。

5

回答

4997

閲覧

5件の回答

評価

0

何がどううまくいかないの?
移動しないってのは、どうやって確認したの?

評価

0

不良社員さんこんばんわ。
肝心な部分を書き忘れてました。すみません。

xmlクラスはコンストラクタにelementにルートタグを追加するというコードを書いています。

xml xmlTest = new xml("root");

xmlTest.appendChild("st1");
xmlTest.downStructure("st1");

xmlTest.appendChild("st2");

//出力

このようなコードを書くと
<root>
 <st1></st1>
 <st2></st2>
</root>
このようなxmlが出力されます。
実際には下記のようにしたのですが・・
<root>
 <st1><st2></st2></st1>
</root>

    public void upStructure(){
        element = (Element)element.getParentNode();
    }
は、getParentNodeがnullを返すので使用するとエラーとなってしまいます。


宜しくお願いします。

評価

0

ふむ。
ではルートは親として、どんなものを期待しているのかな。

評価

0

回答ありがとうございます。

>ではルートは親として、どんなものを期待しているのかな。
数階層からなるxmlを作成したいのですが
<root>
  <tag1>
     <tag1-1></tag1-1>
  </tag1>
  <tag2></tag2>
</root>
のような感じです。
すみません。不良社員さんの回答と違う気もしますが・・・。

少し質問からはずれますが
xmlをjavaで扱う場合皆様はどうしているのでしょうか?
私は今回初めてxmlを扱うのですが、docで書くと毎回分りづらいコードになりそうなので、DOCを簡単にするクラスを作ろうと思いこのようなクラスを作成しているのですが。もっといい方法等ありましたら、ご教示ください。
 
    

評価

0

>は、getParentNodeがnullを返すので使用するとエラーとなってしまいます。

俺がいってるのは、
ルートの親だったら、普通はnullだろうし、
それがnullじゃないってんなら、
じゃ、どんな値を期待してるのか、ってことなんだが。

ルートじゃないし親もあるってんなら、
木構造がちゃんと構築できてないんでしょ。

>このようなxmlが出力されます。
>実際には下記のようにしたのですが・・

該当する部分のソースが上がってるわけでもないようだが。

このようになるのは、このようになるようにコーディングしているからだ。
何故こうなるのか理解できたら、修正も難しくないでしょ。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。