2016-10-14 3 views
2

Excel 데이터를 XML로 웹 서비스에 보내야합니다. 표의 데이터는 다음과 같습니다. see example of table here!Java가 포함 된 SOAPElement에 XML이 포함 된 문자열 추가

첫 번째 행에는 항상 열의 데이터에 대한 XML 태그가 포함됩니다. 대부분의 데이터 열은 문자열 만 포함하지만 일부는 xml을 포함합니다. 이러한 하위 노드는 Webservice가 데이터를 승인하는 데 중요합니다.

나는 모든 열이 새로운 SOAP 요청 인 각 열에 대해 새 SOAPElement를 만드는 SOAP 작업을하고 있습니다.

SOAPElement newElement = body.addChildElement(tagForThisColumn); 
newElement.addTextNode(stringValueOfCell); 

이 문자열 값을 완벽하게 작동하지만,의 SOAPElement는 XML로 세포의 모든 "<"와 ">"이스케이프합니다.

이미 대답을 검색하여 유사한 문제에 대한 몇 가지 해결책을 찾았지만 아무도 적합 내 ..

답변

2

당신은에서 SoapElement에 노드를 추가해야합니다. 나는 그것이 유용 희망

SOAPHeader header = envelope.addHeader(); 

SOAPElement security = header.addChildElement("Security", "wsse", 
    "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"); 

DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); 

documentBuilderFactory.setNamespaceAware(true); 

DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder(); 
File file = new File("your-file.xml"); 

/* parse existing file to DOM */ 
Document document = documentBuilder.parse(new FileInputStream(file)); 

Document securityDoc = security.getOwnerDocument(); 
Node newNode = securityDoc.importNode(document.getFirstChild(), true); 

//Add the Node 
security.appendChild(newNode); 

: 나는 비누 헤더의에서 SoapElement에 SAML 토큰을 추가하여 비슷한 일을했다.

관련 문제