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

  • 相关阅读:
    MyEclipse 快捷键
    Oracle使用split和splitstr函数批量分隔字符串
    linux解压 tar命令
    Crontab的用法
    .net 连接ORACLE中文显示乱码解决方案
    python 列表
    关于ios 11 的问题
    初步了解会计学
    iOS关于直播的链接
    知识链接中.....
  • 原文地址:https://www.cnblogs.com/whisht/p/4098851.html
Copyright © 2011-2022 走看看