获取xml节点的值

import java.io.ByteArrayInputStream;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.w3c.dom.Text;

public class XmlNodeValue {
	
	
	public static String getStringFile(String xml) throws Exception {
    	String downupload = "";

        String statusResult = ""; // 存放应答消息中<status>元素的result属性
        String statusText = ""; // 存放应答消息中<status>元素的text

        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        DocumentBuilder db = dbf.newDocumentBuilder();
        Document doc = db.parse(new ByteArrayInputStream(xml.getBytes()));

        // xml中元素的变量命名均以_符号起始.下同
        Element _message = doc.getDocumentElement();

        // 取二级元素content
        NodeList _contentList = _message.getElementsByTagName("content");
        
        if (_contentList.getLength() == 1) {
            Element _content = (Element) _contentList.item(0);

            // 取三级元素status
            NodeList _statusList = _content.getElementsByTagName("status");
            if (_statusList.getLength() == 1) {
                Element _status = (Element) _statusList.item(0);
                Text t = (Text) _status.getFirstChild();
                statusText = t.getNodeValue();
                statusResult = _status.getAttribute("result");
            }

            if (statusResult.equals("exception") || statusResult.equals("error")) {
                System.out.println(statusText);
                throw new Exception(statusText);
            } else if (statusResult.equals("normal")) {
            	downupload = _content.getElementsByTagName("resultPath").item(0).getFirstChild().getNodeValue();
            	//resultPath节点的value值
            	System.out.println("resultPath节点的value值:" + downupload);
            }
        }
        return downupload;
    }
	
	public static void main(String[] args) throws Exception {
		String xml = "<?xml version=\"1.1\" encoding=\"gb2312\"?>"
				+ "<message>"
					+ "<function name=\"query\">query_bad_call_number_143_export</function>"
					+ "<service>call</service>"
					+ "<content>"
						+ "<status result=\"normal\">被操作对象:全部号码,OK</status>"
						+ "<resultPath>/home/abc/efd/datafile/file/doubtResult_143/doubt_result_143_20170901154904.xls</resultPath>"
					+ "</content>"
				+ "</message>";
		
		getStringFile(xml);
		
	}

}


运行结果:




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值