JAVA XMLConfiguration解决StringXML及多节点

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

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值