zoukankan      html  css  js  c++  java
  • 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();
    		}
    	}
    	
    
    }

  • 相关阅读:
    P2533 [AHOI2012]信号塔
    P1452 Beauty Contest
    P3194 [HNOI2008]水平可见直线
    P2924 [USACO08DEC]大栅栏Largest Fence
    P2742 【模板】二维凸包 / [USACO5.1]圈奶牛Fencing the Cows
    P4208 [JSOI2008]最小生成树计数
    P4280 [AHOI2008]逆序对
    P3199 [HNOI2009]最小圈
    P3343 [ZJOI2015]地震后的幻想乡
    剪刀,石头,布,小游戏脚本
  • 原文地址:https://www.cnblogs.com/whisht/p/4098851.html
Copyright © 2011-2022 走看看