将 "<?xml version=\"1.0\" encoding=\"utf-8\"?><S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\"><S:Body><ns2:queryPatientResponse xmlns:ns2=\"http://impl.service.scjydz.com/\"><return><?xml version="1.0" encoding="UTF-8"?>\n" + "<DATA><TYPE_CODE>AE</TYPE_CODE><RESULT>xml格式错误</RESULT><RESID></RESID><HIS_RESID></HIS_RESID><CREATIONTIME>2023-05-30 15:40:54</CREATIONTIME></DATA></return></ns2:queryPatientResponse></S:Body></S:Envelope>"; 转为中文
时间: 2023-08-14 17:18:26 浏览: 264
WCF专题系列(1):深入WCF寻址Part1
这段字符串中已经包含了中文字符,无需进行转换。但是需要注意的是,该字符串中包含了XML的格式信息,需要将其去除后才能正常解析XML。以下是一个示例代码,将该字符串解析为XML,并输出中文结果:
```
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
public class XmlToString {
public static void main(String[] args) {
String xmlString = "<?xml version=\"1.0\" encoding=\"utf-8\"?><S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\"><S:Body><ns2:queryPatientResponse xmlns:ns2=\"http://impl.service.scjydz.com/\"><return><?xml version="1.0" encoding="UTF-8"?>\n" +
"<DATA><TYPE_CODE>AE</TYPE_CODE><RESULT>xml格式错误</RESULT><RESID></RESID><HIS_RESID></HIS_RESID><CREATIONTIME>2023-05-30 15:40:54</CREATIONTIME></DATA></return></ns2:queryPatientResponse></S:Body></S:Envelope>";
String xmlContent = xmlString.replaceAll("<\\?xml[^>]+\\?>", ""); // 去除XML头部信息
Document document = null;
try {
document = DocumentHelper.parseText(xmlContent); // 解析XML
} catch (DocumentException e) {
e.printStackTrace();
}
if (document != null) {
Element root = document.getRootElement();
Element body = root.element("Body");
Element queryPatientResponse = body.element("queryPatientResponse");
Element returnElement = queryPatientResponse.element("return");
String result = returnElement.getStringValue();
System.out.println(result); // 输出中文结果
}
}
}
```
在上面的代码中,我们首先使用正则表达式去除XML头部信息,然后使用dom4j库解析XML,并获取中文结果。注意,该字符串中的中文字符可能经过了编码,需要进行解码后才能正确输出。
阅读全文