以下のindex.xmlのようなXML文書があるとして、Javaプログラム
で<Title></Title>の中身を抜き出したいのですが、うまく取り
出せません。
【index.xml】
<?xml version='1.0' encoding='UTF-8' ?>
<?xml-stylesheet type="text/xsl" href="../../../_sys/style.xsl"?>
<RDF xmlns:r="○○"
xmlns:d="○○"
xmlns:s="○○"
xmlns="○○">
<ExternalPage about="http://www.pref.iwate.jp/~hp0920/">
<d:Title><s:char code="39">'</s:char>99岩手総体</d:Title>
</ExternalPage>
</RDF>
【ソース】
public class Example {
public static void main(String[] args) {
try {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new File("index.xml"));
Element root = doc.getDocumentElement();
NodeList ExternalPageLst = root.getElementsByTagName("ExternalPage");
for (int j=0; j < ExternalPageLst.getLength() ; j++) {
Element ExternalPageEle = (Element)ExternalPageLst.item(j);
NodeList TitleLst = ExternalPageEle.getElementsByTagName("d:Title");
for (int k=0; k < TitleLst.getLength() ; k++) {
Element TitleEle = (Element)TitleLst.item(k);
NodeList CharLst = ExternalPageEle.getElementsByTagName("s:char");
Element CharEle = (Element)CharLst.item(0);
String Char = CharEle.getFirstChild().getNodeValue();
String Title = TitleEle.getFirstChild().getNodeValue();
System.out.println(Title);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
【実行結果】
null
以上、宜しくお願いします。
No.1ベストアンサー
- 回答日時:
> NodeList TitleLst = ExternalPageEle.getElementsByTagName("d:Title");
恐らくここが問題です。
XMLでは要素名の':'より前の部分はnamespaceと呼ばれ特殊な扱いを受けます。XMLをプログラムで扱う場合,XML Namespace に関する知識は必須ですのですので,勉強しておくことをお勧めします。
http://www.utj.co.jp/XML/sta/namespace.html
http://www.w3.org/TR/REC-xml-names/
若干ヒントを書いておくと,getElementsByTagNameではなく,getElementsByTagNameNSで試してみてください。
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/or …
参考URL:http://www.w3.org/TR/REC-xml-names/
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- HTML・CSS cssが効かなくて困ってます 1 2023/01/01 23:57
- JavaScript 【jquery】EasyUIのSubGridにMySQLのテーブルデータを表示&編集にしたい 5 2022/05/02 13:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
eclipseに記述したjavaファイル...
-
シャットダウンフックが呼ばれない
-
Androidプログラムについて
-
干支の計算で。。。
-
「例外 *** は対応する try 文...
-
アルファベットのソート
-
フレームの×ボタンを押しても閉...
-
python OpenPyXLを使って出力結...
-
半透明の画像
-
<forEach> 内で供給された "ite...
-
ファイル名を動的に生成したい
-
ActionForm form にnullが入っ...
-
JavaMailについて
-
Javaを使ってデジタル時計を作...
-
JAVAサーブレット。 HTML...
-
アーティスト名リストを取得す...
-
System.out.printlnの意味がよ...
-
C言語のポインターに関する警告
-
ループ処理の際、最後だけ","を...
-
System.err. printlnとSystem.o...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
eclipseに記述したjavaファイル...
-
「例外 *** は対応する try 文...
-
ColabでのPytorchのエラー
-
Javaを使ってデジタル時計を作...
-
<forEach> 内で供給された "ite...
-
文字列を数式に
-
importするには java.io.*; imp...
-
python OpenPyXLを使って出力結...
-
Selenium IDEでexportしたコー...
-
シャットダウンフックが呼ばれない
-
Java3Dで横置き円筒体の円筒中...
-
Javaで常駐するソフトを作って...
-
生年月日と今日の日付から年齢...
-
Javaを使用して定時送信をしたい
-
干支の計算で。。。
-
Java での グローバルIP取得
-
GridBagLayoutについての質問
-
ファイル名を動的に生成したい
-
HTMLでのTableタグデータ取得方法
-
importとextendsの用い方の違い...
おすすめ情報