Java UTF-8到UTF16解析
我有一个UTF-8的XML,有一些特殊的中文字符,我需要解析这个XMLJava UTF-8到UTF16解析,java,xml,utf-8,xml-parsing,utf-16,Java,Xml,Utf 8,Xml Parsing,Utf 16,我有一个UTF-8的XML,有一些特殊的中文字符,我需要解析这个XML DocumentBuilderFactory factory = DocumentBuilderFactory .newInstance(); factory.setIgnoringElementContentWhitespace(true); factory.setNamespaceAware(true); factory.setValidating(true); //byte[]
DocumentBuilderFactory factory = DocumentBuilderFactory
.newInstance();
factory.setIgnoringElementContentWhitespace(true);
factory.setNamespaceAware(true);
factory.setValidating(true);
//byte[] buffer = xmlMsg.getBytes("UTF-16");
logger.info("transformToUTP " + xmlMsg);
//byte[] buffer = soapMessage.getBytes();
//ByteArrayInputStream stream = new ByteArrayInputStream(buffer);
InputSource is = new InputSource(new ByteArrayInputStream(
xmlMsg.getBytes("UTF-16")));
Document doc = factory.newDocumentBuilder().parse(is);
//Document doc = factory.newDocumentBuilder().parse(
new InputSource(new StringReader(xmlMsg)));
XPath xpath = XPathFactory.newInstance().newXPath();
xpath.setNamespaceContext(getNameSpace());
XPathExpression soapBodyExpr = xpath.compile(BODY_XPATH_EXP);
Node soapBody = (Node) soapBodyExpr.evaluate(doc,
XPathConstants.NODE);
Node reqMsgNode = soapBody.getFirstChild();
我在reqMsgNode上得到一个空指针异常 不要将xml转换为字符串,按原样解析,使用
DocummentBuilder.parse(文件)
或DocumentBuilder.parse(InputStream)
解析器将从xml声明中获取编码,例如
,如果缺少,则默认情况下将使用UTF-8不要将xml转换为字符串,按原样解析,使用
DocummentBuilder.parse(文件)
或DocumentBuilder.parse(InputStream)
解析器将从xml声明中获取编码,例如
,如果缺少编码,则默认情况下将使用UTF-8为什么要将xml转换为字符串?这是您的第一个问题。为什么要将xml转换为字符串?那是你的第一个问题。