2012-05-10 32 views
0

httpリクエストに対してxml repsonseを取得します。私はXMLレスポンス変数に値を代入する方法

String str = in.readLine(); 

変数、それを文字列として格納し、strの内容は次のとおりです。

<response> 
    <lastUpdate>2012-04-26 21:29:18</lastUpdate> 
    <state>tx</state> 
    <population> 
     <li> 
      <timeWindow>DAYS7</timeWindow> 
      <confidenceInterval> 
       <high>15</high> 
       <low>0</low> 
      </confidenceInterval> 
      <size>0</size> 
     </li> 
    </population> 
</response> 

は、私は変数にtxDAYS7を割り当てます。それ、どうやったら出来るの?

おかげ

+0

使用しているプログラミング言語を教えてください。 – Filburt

+0

こんにちは申し訳ありませんが、私はJavaを使用しています – SUM

+2

http://stackoverflow.com/questions/5947450/how-to-parse-this-xml-using-java –

答えて

0

http://www.mkyong.com/java/how-to-read-xml-file-in-java-sax-parser/

public class ReadXMLFile { 

    // Your variables 
    static String state; 
    static String timeWindow; 

    public static void main(String argv[]) { 

     try { 

      SAXParserFactory factory = SAXParserFactory.newInstance(); 
      SAXParser saxParser = factory.newSAXParser(); 

      // Http Response you get 
      String httpResponse = "<response><lastUpdate>2012-04-26 21:29:18</lastUpdate><state>tx</state><population><li><timeWindow>DAYS7</timeWindow><confidenceInterval><high>15</high><low>0</low></confidenceInterval><size>0</size></li></population></response>"; 

      DefaultHandler handler = new DefaultHandler() { 

       boolean bstate = false; 
       boolean tw = false; 

       public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { 

        if (qName.equalsIgnoreCase("STATE")) { 
         bstate = true; 
        } 

        if (qName.equalsIgnoreCase("TIMEWINDOW")) { 
         tw = true; 
        } 

       } 

       public void characters(char ch[], int start, int length) throws SAXException { 

        if (bstate) { 
         state = new String(ch, start, length); 
         bstate = false; 
        } 

        if (tw) { 
         timeWindow = new String(ch, start, length); 
         tw = false; 
        } 
       } 

      }; 

      saxParser.parse(new InputSource(new ByteArrayInputStream(httpResponse.getBytes("utf-8"))), handler); 

     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

     System.out.println("State is " + state); 
     System.out.println("Time windows is " + timeWindow); 
    } 

} 

から少し変更されたコードあなたがDefaultHandlerからReadXMLFileを拡張したい場合がありますいくつかのプロセスの一部としてこれを実行している場合。

関連する問題