加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

XML文件读取

发布时间:2020-12-16 08:43:22 所属栏目:百科 来源:网络整理
导读:之前写过一个读取 xml 文件的文章,是通过w3c.dom.Document,为此还特意比较了 *.properties 和 *.xml 的区别。也是因为当时的抽象,给现在省去了好多麻烦,因为小编一直在持续不断地调用别人的接口,也偶尔给别人提供几个接口,日子过得倒也丰富……最近一

之前写过一个读取xml文件的文章,是通过w3c.dom.Document,为此还特意比较了 *.properties*.xml的区别。也是因为当时的抽象,给现在省去了好多麻烦,因为小编一直在持续不断地调用别人的接口,也偶尔给别人提供几个接口,日子过得倒也丰富……最近一个接口是用xml传输的,但不是写到一个xml文件中,而是拼接xml字符串,然后再通过SAX解析器使用InputSource对象读取XML……具体见代码:

//xml文件读取
public class xmlReaderTest {
	    public List xmlElements(String xmlDoc) {
		        //创建一个新的字符串
		        StringReader read = new StringReader(xmlDoc);
		        //创建新的输入源SAX 解析器将使用 InputSource 对象来确定如何读取 XML 输入
		        InputSource source = new InputSource(read);
		        //创建一个新的SAXBuilder
		        SAXBuilder sb = new SAXBuilder();
		        try {
		            //通过输入源构造一个Document
		            Document doc = sb.build(source);
		            //取的根元素
		            Element root = doc.getRootElement();
		            System.out.println(root.getName());//输出根元素的名称(测试)
		            //得到根元素所有子元素的集合
		            List jiedian = root.getChildren();
		            //获得XML中的命名空间(XML中未定义可不写)
		            Namespace ns = root.getNamespace();
		            Element et = null;
		            for(int i=0;i<jiedian.size();i++){
		                et = (Element) jiedian.get(i);//循环依次得到子元素
		
		                System.out.println(et.getChild("users_id",ns).getText());
		                System.out.println(et.getChild("users_address",ns).getText());
		            }
		
		            et = (Element) jiedian.get(0);
		            List zjiedian = et.getChildren();
		            for(int j=0;j<zjiedian.size();j++){
		                Element xet = (Element) zjiedian.get(j);
		                System.out.println(xet.getName());
		            }
		        } catch (JDOMException e) {
		            e.printStackTrace();
		        } catch (IOException e) {
		            e.printStackTrace();
		        }
		        return null;
	    }

	public static void main(String[] args){
	        xmlReaderTest doc = new xmlReaderTest();
	          //拼接一个xml字符串
	        StringBuilder sbody = new StringBuilder();
	        sbody.append("<?xml version="1.0" encoding="UTF-8"?>");
	        sbody.append("<BODY>");
	        sbody.append("<ECCODE>");
	        sbody.append("2aettgdg");
	        sbody.append("</ECCODE>");
	        sbody.append("<PHONE>");
	        sbody.append("187XXXXXXXX");
	        sbody.append("</PHONE>");
	        sbody.append("<VOLUME>");
	        sbody.append("10M");
	        sbody.append("</VOLUME>");
	        sbody.append("</BODY>");
	
	        String body = sbody.toString();
	        doc.xmlElements(body);
	        System.out.println(doc.xmlElements(body));
	}
}


也是因为XML让我知道原来双方互调接口,会有这么多事儿,这么多的规则,而且自己想要定义什么样的协议就定义什么样的协议,不管什么样的协议,都是为了更好的更安全的来达到双赢的效果……

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读