0

これが私が解析する必要のあるxmlファイルです。WeatherDescタグからデータを抽出したい

<weather>
  <date>2012-08-31</date>
  <tempMaxC>33</tempMaxC>
  <tempMaxF>91</tempMaxF>
  <tempMinC>22</tempMinC>
  <tempMinF>71</tempMinF>
  <windspeedMiles>15</windspeedMiles>
  <windspeedKmph>24</windspeedKmph>
  <winddirection>W</winddirection>
  <winddir16Point>W</winddir16Point>
  <winddirDegree>260</winddirDegree>
  <weatherCode>113</weatherCode>
  <weatherIconUrl>
    <![CDATA[
    http://www.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0001_sunny.png
    ]]>
  </weatherIconUrl>
  <weatherDesc>
    <![CDATA[ Sunny ]]>
  </weatherDesc>
  <precipMM>0.0</precipMM>
</weather>  

現在のコード:weatherDescを印刷したい...この場合は「Sunny」

URL url = new URL("http://free.worldweatheronline.com/feed/weather.ashx?   key=14d7241962022903123108&q=Pittsburgh,pa.xml");
URLConnection conn = url.openConnection();

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(conn.getInputStream());  

Element root = doc.getDocumentElement();
NodeList nodel = root.getChildNodes();


for (int a = 0; a < nodel.getLength(); a++) {
     String weather = /////////////////????? code i dont know
     System.out.println(weather);
}
4

3 に答える 3

2

getElementsByTagName を使用して要素を取得できます。

NodeList nodel = root.getElementsByTagName("weatherDesc");

if(nodel.getLength() > 0) {
    Node item = nodel.item(0);
    String weather = item.getTextContent();
}
于 2012-08-31T23:56:46.090 に答える
0

これにより、ドキュメント内のすべてのweatherDescタグの値が出力されます。

NodeList nodeList = doc.getElementsByTagName("weatherDesc");

for (int i = 0; i < nodeList.getLength(); i++) {
    System.out.println("Weather: " + nodeList.item(i).getNodeValue());
于 2012-08-31T23:56:58.753 に答える