先附上api将给定输入源的内容解析为一个 XML 文档,并且返回一个新的 DOM Document 对象。如果 InputSource 为 null,则抛出 IllegalArgumentException。 再附上xml
<?xml version="1.0" encoding="GBK"?>
<Packet type="RESPONSE" version="1.0">
<Head><RequestType>V0101</RequestType><ResponseCode>1</ResponseCode><ErrorCode>0000</ErrorCode><ErrorMessage>成功</ErrorMessage></Head>
<Body>
<CarName>1</CarName><CategoryName>版</CategoryName>
</Body>
</Packet>注意CategoryName标签中的版,两个奇怪的现象1:将CategoryName中的版替换成任何字符都不会报错,写成"版"一直提示元素类型 "CategoryName" 必须由匹配的结束标记 "</CategoryName>" 终止。
2:将"版"子放到旁边的<CarName>,carName开始报错?有没有老司机帮忙分析分析这是什么问题?程序很简单,就两行代码InputStream in = new ByteArrayInputStream(readFile().getBytes("UTF-8"));
Document document = XMLUtils.parse(in);下面是parser方法
public static Document parse(InputStream is)
        throws ParserConfigurationException, FactoryConfigurationError, SAXException, IOException
    {
        DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
        Document document = builder.parse(is);
        document.normalize();
        return document;
    }