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我得到空值。

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 回答