안녕하세요,Stax 구문 분석이 적절한 응답을 반환하지 않습니다.
Jaxb와 SOAP 응답을 구문 분석하는 동안 매우 이상한 문제가 있습니다. 내가 구문 분석하는 동안 태그의 전체 목록을 얻을 수 없습니다 .Stax 파서는 단 하나의 태그를 구문 분석 할 수있는 어떤 오류 또는 예외를 제공하지 않습니다. XML 응답 (문자열에 저장됩니다) 형식을 시도하면 모든 것이 완벽하게 작동합니다 벌금. 여기에 내가 그것을 구문 분석하고있는 무슨이다 : -
여기public void parseResponse(){
String response="<SOAP:Body><response><result><myTag></myTag><myTag></myTag>/result</response</SOAP:Body>";
getUnmarshalledObject(response,myTag,MyTag.class,"com.mylearning.parseXml");
}
public <T> List<T> getUnmarshalledObject(String response ,String TAG_TO_SEARCH ,Class<T> clazz , String basePkg)
throws XMLStreamException, JAXBException{
Reader reader = new StringReader(response);
XMLInputFactory xif = XMLInputFactory.newInstance();
XMLStreamReader xsr = xif.createXMLStreamReader(reader);
List<T> listOfUnmarshalledObjects = new ArrayList<T>();
while (xsr.hasNext()) {
if (xsr.getEventType() == XMLStreamReader.START_ELEMENT && TAG_TO_SEARCH.equals(xsr.getLocalName())) {
T unmarshalledObj = unmarshalXml(clazz ,xsr, basePkg);
listOfUnmarshalledObjects .add(unmarshalledObj);
}
xsr.next();
}
return listOfUnmarshalledObjects;
}
문제의 다양한 사용 사례입니다 : -이
Case 1:- Input String response is unformatted.
Result :- listOfUnmarshalledObjects is 1.
Case 2:- Format response with response.replaceAll("><",">\n<");
Result:- listOfUnmarshalledObjects is 2.
Case 3 : Input String unformatted , just give space b/w </myTag><myTag>
Result: listOfUnmarshalledObjects is 2.
I tried my best to explain the question, please help me.
> Blockquote