- PR -

xmlファイル読み込み時に

1
投稿者投稿内容
会議室デビュー日: 2009/02/22
投稿数: 7
投稿日時: 2009-02-23 19:36
下記のようなxmlファイルをjavaで読み込もうとしており、

**********************************************************
<hiduke date="2000/10/10">
<test>
<a>1000</a>
<b tyuki="true">2000</c>
<c/>
<testgokei total="true">3000</testgokei>
</test>
</hiduke>
**********************************************************


以下のようなプログラム(一部)を書いたのですが、
dateの「2000/10/10」と<a>の要素である「1000」の値はとる事ができたのですが、
<b>のtyukiと要素の値、<testgokei>のtotalと要素の値がとることが出来ません。
どこを編集すればよいのか、アドバイスいただけないでしょうか?

-------------------------------------------------------------------------
try {
DocumentBuilderFactory dbfactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = dbfactory.newDocumentBuilder();
Document doc = builder.parse(new File("test.xml"));
Element root = doc.getDocumentElement();

for(int j=0;j<4;j++){
NodeList list = root.getElementsByTagName(dataVO.dataname[j]);

for (int i=0; i < list.getLength() ; i++) {
Element element = (Element)list.item(i);
String titlename = element.getTagName();

if(titlename.equals("hiduke")){
String date = element.getAttribute("date");
datelist.add(date);
}
String tyuki = element.getAttribute("tyuki");
String total = element.getAttribute("total");
System.out.println(tyuki);
System.out.println(total);

String data = element.getFirstChild().getNodeValue();
titlelist.add(titlename);
datalist.add(data);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
Ray
ベテラン
会議室デビュー日: 2007/09/13
投稿数: 88
投稿日時: 2009-02-23 20:03
引用:

凛さんの書き込み (2009-02-23 19:36) より:

<b tyuki="true">2000</c>




<b tyuki="true">2000</b>
xmlとして間違えて居るのでは。
会議室デビュー日: 2009/02/22
投稿数: 7
投稿日時: 2009-02-23 20:38
失礼致しました。
<b tyuki="true">2000</b>
です。また、質問した部分は自己解決しましたが、他の部分でエラーがでてしまいました。

<c/>を読み込んだ際に、要素がnullになるため、下記のように変更したのですが、
やはりjava.lang.NullPointerExceptionがでてしまいます。
どうすればよいでしょうか?

if(element.getFirstChild().getNodeValue().equals(null)){
datalist.add("-");
}
else{
String data = element.getFirstChild().getNodeValue();
titlelist.add(titlename);
datalist.add(data);
}
朝日奈 ありす
ベテラン
会議室デビュー日: 2007/10/28
投稿数: 57
お住まい・勤務地: 北の都
投稿日時: 2009-02-24 00:13
null 比較は == で。
会議室デビュー日: 2009/02/22
投稿数: 7
投稿日時: 2009-02-24 05:15
朝日奈 ありす様
返答ありがとうございます。

.equals(null)から==nullに変更しましたが、やはりjava.lang.NullPointerException
が出てしまいます…
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2009-02-24 08:03
elementがnullじゃなくて?
行番号を見て、どこがnullになっているか1つずつデバッグしましょう。
会議室デビュー日: 2009/02/22
投稿数: 7
投稿日時: 2009-02-24 08:57
かつのり様
ご返答ありがとうございます。

elementはnullではありませんでしたが、
FirstChildがnullになっていたためでした。
NodeValueではなくFirstChildに比較箇所を変更したら無事解決しました。

返答いただいた方々ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)