###名前空間のあるXMLからJavaで情報を取得したい
プログラミング初心者です
Javaのプログラミングを使って
XML(sample.xml)から情報を表示させたいと思っています。
###発生している問題・エラーメッセージ
コマンドライン引数にsample.xmlのファイルパスを入力し実行すると
ここまでreadLine出力 ここから選択出力 タグに該当 null タグに該当 null タグに該当 null タグに該当 略 ~ 略 タグに該当 null タグに該当 null タグに該当 null ここまでで選択出力終わり
となり、nullが返ってきてしまいます。
エラーメッセージ 上記です
###該当のソースコード
xml
1sample.xml 2 3<?xml version="1.0" encoding="UTF-8"?> 4<?xml version="1.0" ?> 5<media> 6 7 <!-- Aさんが書いた映画用のXML --> 8 <A:title xmlns:A="URLA" >THE Last Samurai</A:title> 9<A:p l="100"/> 10 <A:review>◎</A:review> 11 12 <!-- Bさんが書いた書籍用のXML --> 13 <B:title xmlns:B="URLB" >赤と黒</B:title> 14 <B:review>名作</B:review> 15 16</media> 17 18 19ここにご自身が実行したソースコードを書いてください
###該当のソースコード
java
1//Main.java 2import java.io.BufferedReader; 3import java.io.FileNotFoundException; 4import java.io.IOException; 5import java.nio.charset.StandardCharsets; 6import java.nio.file.Files; 7import java.nio.file.Path; 8import java.nio.file.Paths; 9 10import javax.xml.stream.XMLStreamException; 11 12public class Main { 13 14 public static void main(String[] args) throws FileNotFoundException, XMLStreamException { 15 String fileSeparator = System.getProperty("file.separator"); 16 System.out.println(fileSeparator); 17 18 19 String userSelectedPath = (String)args[0]; 20 Path UserSelectedFilePath = Paths.get(userSelectedPath); 21 22 23 24 25 26 ReadXml rx = new ReadXml(); 27 System.out.println("ここまでreadLine出力"); 28 29 System.out.println("ここから選択出力"); 30 rx.Reader(userSelectedPath,"p","l"); 31 32System.out.println("ここまでで選択出力終わり"); 33 34 35 } 36 37} 38 39//ReadXml.java 40import java.io.FileInputStream; 41import java.io.IOException; 42import java.io.InputStream; 43 44import javax.xml.stream.XMLInputFactory; 45import javax.xml.stream.XMLStreamConstants; 46import javax.xml.stream.XMLStreamException; 47import javax.xml.stream.XMLStreamReader; 48 49public class ReadXml { 50 public void Reader(String UserSelectedPath, String tag,String element){ 51 try(InputStream in = new FileInputStream(UserSelectedPath)){ 52 XMLInputFactory factory = XMLInputFactory.newInstance(); 53 XMLStreamReader reader = factory.createXMLStreamReader(in); 54 55 //パース開始 56 while(reader.hasNext()){ 57 //イベントタイプを取得 58 switch(reader.getEventType()){ 59 //タグの開始イベントの場合 60 case XMLStreamConstants.START_ELEMENT: 61 //タグによって動作 62 if(reader.getLocalName().equals(tag)){ 63 //属性取得 64 System.out.println("タグに該当"); 65 System.out.println(""+reader.getAttributeValue("URLA",element)); 66 67 } 68 break; 69 default: 70 } 71 reader.next(); 72 } 73 reader.close(); 74 } catch (IOException | XMLStreamException e) { 75 // 76 e.printStackTrace(); 77 } 78 79 } 80 81} 82
###補足情報(言語/FW/ツール等のバージョンなど)
eclipse
回答1件
あなたの回答
tips
プレビュー