2
를 사용하여 추출 XML 정보는 내가 다음 예에서와 같은 SOAP 응답에서 XML 데이터를 XPath를
나는Map(KEY,VALUE) KEY=tagname, VALUE=value
의 각 직원에 대한 정보를 저장하고를 만들려 할
<EMP>
<PERSONAL_DATA>
<EMPLID>AA0001</EMPLID>
<NAME>Adams<NAME>
</PERSONAL_DATA>
<PERSONAL_DATA>
<EMPLID>AA0002<EMPLID>
<NAME>Paul<NAME>
</PERSONAL_DATA>
</EMP>
Java에서 XPATH를 사용하는 모든 직원에 대해 LIST<MAP>
. 어떻게 이뤄지나요?
public static List createListMap(String path, SOAPMessage response,Map map) {
List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
try {
XPath xpath = XPathFactory.newInstance().newXPath();
XPathExpression expr = xpath.compile("//" + path + "/*");
Object re =expr.evaluate(response.getSOAPBody(), XPathConstants.NODESET);
NodeList nodes = (NodeList)res;
for (int i = 0; i < nodes.getLength(); i++) {
if (nodes.item(i).getFirstChild() != null &&
nodes.item(i).getFirstChild().getNodeType() == 1) {
Map<String, Object> map1 = new HashMap<String, Object>();
map.put(nodes.item(i).getLocalName(), map1);
createListMap(nodes.item(i).getNodeName(), response,map1);
list.add(map);
}
else {
map.put(nodes.item(i).getLocalName(),nodes.item(i).getTextContent());
}
return list;
}
내가 (응답이 SoapResponse입니다) createListMap("EMP",response,map);
같은 방법을 호출 :
//PERSONAL_DATA/*
에 문제가 발생했습니다. 재귀에서 두 직원에 대한 데이터가 나열되어 있지만 각 직원의 데이터를 자체 맵에 저장 한 다음 해당 MAP의 LIST를 작성하려고합니다. 어떻게해야합니까?
대단히 감사합니다. – Sandeep