java dom4j解析xml文件

Java后端技术 专栏收录该内容
136 篇文章 0 订阅

摘要:dom4j解析指定模板的xml文件!


一:首先建立一个java项目


二:导入dom4j的jar,我这里导入的是dom4j-1.6.1.jar,具体请自行百度下载


三:xml模板内容,我这里是直接解析xml文件,也可以把xml文件转换为xml字符串进行解析:

<?xml version="1.0" encoding="UTF-8"?>
		<message>
			<body>
				<field-list name="RECORD" size="2">
					<field-list name="1">
						<field name="messageId">1_20170116175008968_102157946</field>
						<field name="mobilePhone">18611966723</field>
						<field name="resultCode">-10</field>
					</field-list>
					<field-list name="2">
						<field name="messageId">1_20170116175008968_102157946</field>
						<field name="mobilePhone">13521196327</field>
						<field name="resultCode">-10</field>
					</field-list>
				</field-list>
				<field name="resultCode">0</field>
				<field name="errorCode">0</field>
			</body>
		</message>


四:java代码:

package com.wwtl.sms;

import java.io.File;
import java.util.Iterator;
import java.util.List;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class XmlTest {

	public static void main(String[] args) {
		//1.读取XML文件,获得document对象              
        SAXReader reader = new SAXReader();               
        try {
			Document document = reader.read(new File("E:\\smsworkspace\\WwtlSmsDemo\\src\\text.xml"));
			Element rootElement = document.getRootElement();//获取根节点
			System.out.println("根节点的名称:" + rootElement.getName());
			Iterator iter = rootElement.elementIterator("body");//获取跟节点下的子节点body
			//遍历body节点
			while(iter.hasNext()){
				Element recordEle = (Element) iter.next();
				Iterator elementIterator = recordEle.elementIterator("field-list");
				while(elementIterator.hasNext()){
					Element element = (Element) elementIterator.next();
					Iterator elementIterator2 = element.elementIterator();
					while(elementIterator2.hasNext()){
						Element element2 = (Element)elementIterator2.next();
						Iterator elementIterator3 = element2.elementIterator("field");
						while(elementIterator3.hasNext()){
							Element element3 = (Element)elementIterator3.next();
							List<Attribute> attributes = element3.attributes();
							for (Attribute attribute : attributes) {
								//String name = attribute.getName();
								String value = attribute.getValue();
					        	//System.out.println("当前节点名称:"+element3.getName() + " 当前节点属性名称:"+name+" 当前节点属性值:"+value + " 当前节点的内容:"+element3.getTextTrim());
					        	if(value.equals("resultCode")){
					        		System.out.println("节点的内容:" + element3.getTextTrim());
					        		if(element3.getTextTrim().equals("0")){
					        			System.out.println("短信发送success!");
					        		}else{
					        			System.out.println("短信发送fail!");
					        		}
					        	}
							}
						}
						
					}
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}  
	}
	
}

我这里是获取field节点下面的子节点的内容!

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值