0

これを解析できません:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  <response>
     <status>OK</status>
     <time>2012-12-18 21:55</time>
  </response>

コードで:

InputStream is=sock.getInputStream();
        String sa="";
        int cc;
        while((cc=is.read())!=-1){
            sa+=(char) cc;
        }
ByteArrayInputStream sr=new ByteArrayInputStream(sa.getBytes());
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
DocumentBuilder db=dbf.newDocumentBuilder();
Document doc=db.parse(sr);

srStringこれが置かれている場所です。どうすればそれが可能になりますか?使用するdoc.getNodeNameとnullになります。

4

1 に答える 1

0

入力ストリームを解析する別の方法があります。これを試してみると、完全に制御できます

Java を使用して xml ファイルを解析する -- Android ベースのアプリケーション

または

public class Tester {

    String getString() throws IOException, ParserConfigurationException, SAXException {
        InputStream inputStream = getClass().getResourceAsStream("input.xml");
        String sa = "";
        int cc;
        while((cc = inputStream.read()) != -1) {
            sa += (char) cc;
        }
        ByteArrayInputStream sr = new ByteArrayInputStream(sa.getBytes());
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        DocumentBuilder db = dbf.newDocumentBuilder();
        Document doc = db.parse(sr);

        Node node=doc.getDocumentElement().getFirstChild();
        String data=node.getNodeName();
        return data;
    }

    public static void main(String[] args) throws IOException, ParserConfigurationException, SAXException {
        Tester t = new Tester();
        System.out.println(t.getString());

    }

}
于 2012-12-18T21:12:58.203 に答える