dom4j解析xml格式字符串

有一xml格式的字符串,如下:

<?xml version="1.0" encoding="GBK"?>

<results>
<result id="100" value="test">
<param name="ip"><![CDATA[127.0.0.1]]></param>
<param name="username"><![CDATA[root]]></param>
</template>
</results>

封装xml格式字符串

<span style="font-size:14px;">	public static void main(String[] args) {
		Document document = DocumentHelper.createDocument();
		document.setXMLEncoding("GBK");

		Element templates = document.addElement("templates");
		Element template = templates.addElement("template");
		template.addAttribute("uuid", "66c221be-6ab2-ef53-1589-fe16877914e2").addAttribute("engine", "bvs");

		addElement(template,"ip","1.2.1.1");
		addElement(template,"username","root");
		addElement(template,"password","123456");

		System.out.println(document.asXML().toString());
	}

	private static void addElement(Element element, String fieldName, String value) {
	    Element param = element.addElement("param");
	    param.addAttribute("name", fieldName);
	    //param.addText(value);
	    param.addCDATA(value);
	}</span>

模拟测试如下:

<span style="font-size:14px;">String templates = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><results><result id=\"100\" value=\"test\"><param name=\"ip\"><![CDATA[1.2.1.1]]></param><param name=\"username\"><![CDATA[nsfocus]]></param></result></results>";
Document document = null;
try {
	document = DocumentHelper.parseText(results);
	List<Element> result = document.selectNodes("//results//result");
	for(Element element : result){
		String id = element.attributeValue("id");
		System.out.println(id);

		if("100".equals(id)){
			List<Element> params = document.selectNodes("//results//result//param");
			for(Element param : params){
				String name = param.attributeValue("name");
				if("ip".equals(name)){
					String ip= param.getData().toString();
					System.out.println(ip);
				} else if("username".equals(name)){
					String username= param.getData().toString();
					System.out.println(username);
				}
			}
		}
	}
} catch (DocumentException e) {
	e.printStackTrace();
}</span>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值