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();
}
}
}