我现在已将 SOAP XML 文件存储到本地机器中,以验证我需要加载该文件并从 SOAP 正文中提取 XML 以验证它的 XML。
SOAP XML
<SOAP:Envelope>
<SOAP:Body>
<request>
<Login>
<Username>abc</Username>
<Password>abc</Password>
</Login>
</request>
</SOAP:Body>
</SOAP:Envelope>
我需要从上面的 SOAP 请求中提取 <Login> XML。我正在使用 FileUtils 将文件读入字符串。当我使用它读取文件时,它还会读取 \n\t\t 等字符,这意味着它会考虑 XML 格式文件中的换行符和制表符。
我使用下面的代码从 XML 中提取子节点作为字符串。
InputStream requestXMLInputStream = new ByteArrayInputStream(soapRequestXML.getBytes());
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder;
String requestXMLBody = "";
Document doc = null;
try {
dBuilder = dbFactory.newDocumentBuilder();
doc = dBuilder.parse(requestXMLInputStream);
NodeList requestNodeList = doc.getElementsByTagName(parentTagName);
Node node = requestNodeList.item(0);
DOMImplementationLS domImplLS = (DOMImplementationLS) doc.getImplementation();
LSSerializer serializer = domImplLS.createLSSerializer();
if(node != null && node.getFirstChild() != null)
requestXMLBody = serializer.writeToString(node.getFirstChild());
} catch (SAXException e) {
logger.error(e.getMessage());
} catch (IOException e) {
logger.error(e.getMessage());
}catch (ParserConfigurationException e) {
logger.error(e.getMessage());
}
return requestXMLBody;
如果没有这些字符,我如何读取 XML 文件。
请帮忙。