SOAP XML 파일을 로컬 시스템에 저장 했으므로 해당 파일을로드하고 SOAP 본문에서 XML의 유효성을 검사해야합니다.Apache Common FileUtils XML 파일을 문자열로 읽어들입니다.
SOAP의 XML은
<SOAP:Envelope>
<SOAP:Body>
<request>
<Login>
<Username>abc</Username>
<Password>abc</Password>
</Login>
</request>
</SOAP:Body>
</SOAP:Envelope>
나는 SOAP 요청 위에서 < 로그인 > XML을 추출해야합니다. FileUtils를 사용하여 파일을 문자열로 읽습니다. 그것을 사용하여 파일을 읽을 때 \ n \ t \ t 등의 문자도 읽습니다. XML 형식의 파일에있는 개행과 탭을 고려해야합니다.
i 아래 코드를 사용하여 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 파일을 읽을 수 있습니까?
도와주세요.