我有一个XML格式的SoapMesagge,它包含中文字符。
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<new:NewOperation xmlns:new="http://www.example.org/NewWSDLFile/">
<in>4) 软件应安全、。</in>
</new:NewOperation>
</soapenv:Body>
</soapenv:Envelope>
要解析这个,我在JAVA中编写了下面的代码,其中soapMessage是我的消息
ByteArrayInputStream is = new ByteArrayInputStream(soapMessage.getBytes());
InputStreamReader isr = new InputStreamReader(is,"UTF-8);
InputSource source=new InputSource(isr);
SAXParser parser = new SAXParser();
parser.parse(source);
无法解析中文字符并抛出以下错误,请帮我解决此问题。
Fatal Error] :1:1: Content is not allowed in prolog.
org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog.
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
我也试过过Dom Parser。
答案 0 :(得分:0)
您可以查看以下链接,已经提到了一个答案,可以帮助您。
parsing chinese characters in java showing weird behaviour
我认为你的代码在编译时会失败,但也会出现以下错误:
代码:SAXParser parser = new SAXParser();
错误:Cannot instantiate the type SAXParser
因为 SAXParser 是一个无法直接实例化的抽象类:
public abstract class javax.xml.parsers.SAXParser