2012-10-19 2 views
3
<string> 
    <Root> 
     <Employee ID="1" PROJECTGROUP="Web" PROJECTKEY="1" PROJECT="ABC Project" DSCRIPTON="Logidtic Project" TOTALTASK="50" TOTALOPENTASK="50" TOTALCLOSETASK="0" HIGHPRIORITY="3"/> 
    </Root> 
</string> 

여기에 XML 데이터가있는 문자열 변수가 있습니다. 어떻게 처리 될지 파싱하는 동안?ksoap2를 사용하여 xml 데이터가있는 문자열 변수에서 값을 가져 오는 방법

String xml ="valid xml here"; 
InputStream is = new ByteArrayInputStream(xml.getBytes("UTF-8")); 
/* Get a SAXParser from the SAXPArserFactory. */ 
SAXParserFactory spf = SAXParserFactory.newInstance(); 
SAXParser sp = spf.newSAXParser(); 
/* Get the XMLReader of the SAXParser we created. */ 
XMLReader xr = sp.getXMLReader(); 
/* Create a new ContentHandler and apply it to the XML-Reader*/ 
ExampleHandler myExampleHandler = new ExampleHandler(); 
xr.setContentHandler(myExampleHandler); 
/* Parse the xml-data from our URL. */ 
xr.parse(new InputSource(is)); 
/* Parsing has finished. */ 

ExampleHandler.java :

class ExampleHandler extends DefaultHandler { 
StringBuffer buff = null; 
boolean buffering = false; 
public static EmployeeVO empVO=null; 

@Override 
public void startElement(String namespaceURI, String localName, String qName, 
     Attributes atts) throws SAXException { 
    if (localName.equals("Employee")) { 
     empVO=new EmployeeVO(); 
     empVO.setEMPLOYEEID(atts.getValue("ID")); 
     empVO.setPROJECTGROUP(atts.getValue("PROJECTGROUP")); 
     empVO.setPROJECTKEY(atts.getValue("PROJECTKEY")); 
     empVO.setPROJECT(atts.getValue("PROJECT")); 
     empVO.setDSCRIPTON(atts.getValue("DSCRIPTON")); 
     empVO.setTOTALTASK(atts.getValue("TOTALTASK")); 
     empVO.setTOTALOPENTASK(atts.getValue("TOTALOPENTASK")); 
     empVO.setTOTALCLOSETASK(atts.getValue("TOTALCLOSETASK")); 
     empVO.setHIGHPRIORITY(atts.getValue("HIGHPRIORITY")); 
    } 
} 


@Override 
public void endElement(String namespaceURI, String localName, String qName) 
throws SAXException { 

} 

@Override 
public void characters(char ch[], int start, int length) { 
    if(buffering) { 
     buff.append(ch, start, length); 
    } 
} 

} 

및 EmployeeVO.java

public class EmployeeVO { 

String EMPLOYEEID; 
String PROJECTGROUP; 
String PROJECTKEY; 
String PROJECT; 
String DSCRIPTON; 
String TOTALTASK; 
String TOTALOPENTASK; 
String TOTALCLOSETASK; 
String HIGHPRIORITY; 

public String getEMPLOYEEID() { 
    return EMPLOYEEID; 
} 
public void setEMPLOYEEID(String eMPLOYEEID) { 
    EMPLOYEEID = eMPLOYEEID; 
} 
public String getPROJECTGROUP() { 
    return PROJECTGROUP; 
} 
public void setPROJECTGROUP(String pROJECTGROUP) { 
    PROJECTGROUP = pROJECTGROUP; 
} 
public String getPROJECTKEY() { 
    return PROJECTKEY; 
} 
public void setPROJECTKEY(String pROJECTKEY) { 
    PROJECTKEY = pROJECTKEY; 
} 
public String getPROJECT() { 
    return PROJECT; 
} 
public void setPROJECT(String pROJECT) { 
    PROJECT = pROJECT; 
} 
public String getDSCRIPTON() { 
    return DSCRIPTON; 
} 
public void setDSCRIPTON(String dSCRIPTON) { 
    DSCRIPTON = dSCRIPTON; 
} 
public String getTOTALTASK() { 
    return TOTALTASK; 
} 
public void setTOTALTASK(String tOTALTASK) { 
    TOTALTASK = tOTALTASK; 
} 
public String getTOTALOPENTASK() { 
    return TOTALOPENTASK; 
} 
public void setTOTALOPENTASK(String tOTALOPENTASK) { 
    TOTALOPENTASK = tOTALOPENTASK; 
} 
public String getTOTALCLOSETASK() { 
    return TOTALCLOSETASK; 
} 
public void setTOTALCLOSETASK(String tOTALCLOSETASK) { 
    TOTALCLOSETASK = tOTALCLOSETASK; 
} 
public String getHIGHPRIORITY() { 
    return HIGHPRIORITY; 
} 
public void setHIGHPRIORITY(String hIGHPRIORITY) { 
    HIGHPRIORITY = hIGHPRIORITY; 
} 

    } 

답변

1

사용 아래 코드를 XML 형태의 문자열을 구문 분석하려면
관련 문제