Java codeXmlPullParser parser = Xml.newPullParser();
try {
int nTouched = 0;
String result = null;
// 以流的形式获取XML文件
InputStream InputStream = new ByteArrayInputStream(content
.getBytes());
// 设置输入流已经编码方式
parser.setInput(InputStream, "UTF-8");
// 获取当前的事件类型
int eventType = parser.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
if (eventType == XmlPullParser.START_DOCUMENT) {
// Utils.writeLogInfo("PopulationQuery", "xml",
// "Start document");
} else if (eventType == XmlPullParser.END_DOCUMENT) {
// Utils.writeLogInfo("PopulationQuery", "xml",
// "Start document");
} else if (eventType == XmlPullParser.START_TAG) {
// Utils.writeLogInfo("PopulationQuery", "xml", "Start tag "
// + parser.getName());
String nodeName = parser.getName();
if (nodeName.equals("Envelope")) {
nTouched++;
} else if (nodeName.equals("Body")) {
nTouched++;
} else if (nodeName.equals("baseQueryResponse")) {
nTouched++;
} else if (nodeName.equals("out")) {
nTouched++;
}
} else if (eventType == XmlPullParser.END_TAG) {
// Utils.writeLogInfo("PopulationQuery", "xml", "End tag " +
// parser.getName());
String nodeName = parser.getName();
if (nodeName.equals("Envelope")) {
nTouched--;
} else if (nodeName.equals("Body")) {
nTouched--;
} else if (nodeName.equals("baseQueryResponse")) {
nTouched--;
} else if (nodeName.equals("out")) {
nTouched--;
}
} else if (eventType == XmlPullParser.TEXT) {
// Utils.writeLogInfo("PopulationQuery", "xml", "Text " +
// parser.getText());
// 读取XML
result = parser.getText();
}
// 手动的触发下一个事件
eventType = parser.next();
}
return result;
} catch (Exception e) {
e.printStackTrace();
}