import org.apache.commons.configuration.ConfigurationException; import org.apache.commons.configuration.HierarchicalConfiguration; import org.apache.commons.configuration.HierarchicalConfiguration.Node; import org.apache.commons.configuration.XMLConfiguration; public class parseXMDemo { private static String parseMutliLines(HierarchicalConfiguration lineConfig) { String value=""; Node root = lineConfig.getRoot(); List children = root.getChildren(); int count = 0; for (int i = 0; i < children.size(); i++) { Node child = (Node) children.get(i); if ("point".equals(child.getName())) { count++; } } for (int i = 0; i < count; i++) { value += lineConfig.getString("point(" + i + ")[@X]"); value += ","; value += lineConfig.getString("point(" + i + ")[@Y]"); value += ":"; } return value; } public static void main(Stirng[] args) { String xml = "<csMsgsReq>" + " <csMsgReq xsi:type=\"cstypeNotify\">" + " <authority xsi:type=\"cstypeAuthorityCommon\"/>" + " <nbase xsi:type=\"cstypeAlarmGeneral\">" + " <alarmTime>2014-10-09T17:16:54.687</alarmTime>" + " <TrackLine xsi:type=\"cstypeTrackLineType\" lineLth=\"24\">" + " <point xsi:type=\"cstypepoint\" X=\"0\" Y=\"0\"/>" + " <point xsi:type=\"cstypepoint\" X=\"1386\" Y=\"472\"/>" + " </TrackLine>" + " </nbase>" + " </csMsgReq>" + "</csMsgsReq>"; InputStream in = new ByteArrayInputStream(xml.getBytes()); XMLConfiguration config = new XMLConfiguration(); try { config.load(in); String alarmTime = config.getString("csMsgReq.nbase.alarmTime"); HierarchicalConfiguration lineConfig = (HierarchicalConfiguration)config.subset("csMsgReq.nbase.TrackLine"); String trackLine = parseMutliLines(lineConfig); } catch (ConfigurationException e) { e.printStackTrace(); } } }