###現状
javaを使ってRSSでお天気データをダウンロードして気温などを取得したいです。
お天気データはこれです。あと、参考にしたプログラムの例はこちらです。
具体的にはXMLEventReaderを使ったプログラムです。
###プログラム
java
1import java.net.URL; 2import java.io.InputStream; 3import javax.xml.stream.XMLEventReader; 4import javax.xml.stream.XMLInputFactory; 5import java.io.IOException; 6import javax.xml.namespace.QName; 7import javax.xml.stream.events.StartElement; 8import javax.xml.stream.events.XMLEvent; 9import javax.xml.stream.XMLStreamException; 10 11 12public class RssStation{ 13 QName want; 14 URL url; 15 String sURL; 16 InputStream bridge; 17 XMLInputFactory factoer; 18 XMLEventReader readXML; 19 20 void getXMLElement(String address,String tag){ 21 try{ 22 this.url = new URL(address); 23 want = new QName(tag); 24 bridge = url.openStream(); 25 factoer = XMLInputFactory.newInstance(); 26 readXML = factoer.createXMLEventReader(sURL,bridge); 27 XMLEvent event = null; 28 StartElement start = null; 29 while(readXML.hasNext()){ 30 event = readXML.peek(); 31 if (event.isStartElement()){ 32 start = event.asStartElement(); 33 if (want.equals(start.getName())){ 34/*>>>>>>>>>>>>>>*/System.out.println("titler"+readXML.getElementText()); 35 break; 36 } 37 } 38 readXML.nextEvent(); 39 } 40 }catch(IOException e){ 41 e.printStackTrace(); 42 }catch(XMLStreamException e){ 43 e.printStackTrace(); 44 }finally{ 45 try{ 46 if (bridge != null){ 47 bridge.close(); 48 } 49 if (readXML != null){ 50 readXML.close(); 51 } 52 }catch(IOException e){ 53 e.printStackTrace(); 54 }catch(XMLStreamException e){ 55 e.printStackTrace(); 56 } 57 } 58 } 59}
###問題・エラー
コンパイルでは問題はありません。でも実行エラーが出てしまいます。
javax.xml.stream.XMLStreamException: ParseError at [row,col]:[2,36] Message: elementGetText() function expects text only elment but START_ELEMENT was encountered. at com.sun.xml.internal.stream.XMLEventReaderImpl.getElementText(XMLEventReaderImpl.java:140) at RssStation.getXMLElement(RssStation.java:34) at MyRss.main(MyRss.java:4)
START_ELEMENTがなんたらと言っているのは分かりますがasStartElement()で
START_ELEMENTになっていると思うのですが、どうしてでしょうか?
/>>>>>/のところでエラーは起っていると思うのですが、解決できません。
お願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/03/19 12:24