java解析XML saxReader.read(xml) 错误:org.dom4j.DocumentException: no protocol
xml参数赋值为一段xml格式的字符串。
dom4j使用的版本是1.0.0,查看该方法的源代码没有代码注释说明
进入InputSource的构造函数定义:
从注释可以看出saxReader.read(xml)中的xml参数应该是资源定位符(URI),而不是实际的xml内容,因此方法使用存在错误
@param systemId The system identifier (URI).
解决方法可以用一个字节数据输入流包装实际的xml内容,然后再用saxBuilder.read方法读取:
inputStream = new ByteArrayInputStream(rpcInput.getBytes("UTF-8"));saxBuilder.read(inputStream)