当前位置 : 主页 > 编程语言 > c++ >

读取XML文件中的信息

来源:互联网 收集:自由互联 发布时间:2021-07-03
Java功能片段 package org.jxnd.test;import java.io.File;import java.util.ArrayList;import java.util.List;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.Element;import org.dom4j.io.SAXReader;import org.jxnd.
Java功能片段
package org.jxnd.test;

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

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.jxnd.bean.Roles;
import org.jxnd.bean.UserInfo;

public class Test {
	public static void main(String[] args) throws Exception {
		SAXReader reader=new SAXReader();
		//加载XML文档
		Document doc=reader.read(new File("src/Students.xml"));
		//获取根节点
		Element root=doc.getRootElement();
		List
 
   list=new ArrayList
  
   (); getUserInfoByXml(root,list); for (UserInfo userInfo : list) { System.out.println(userInfo); } } public static void getUserInfoByXml(Element root,List
   
     list){ //获取当前节点的所有子节点 List
    
      elements=root.elements(); //遍历所有子节点 for (Element element : elements) { if(element.getName().equals("student")){ UserInfo info=setUserInfo(element); list.add(info); } } } public static UserInfo setUserInfo(Element root){ UserInfo info=new UserInfo(); List
     
       elements=root.elements(); for (Element element : elements) { if (element.getName().equals("id")) info.setId(Integer.parseInt(element.getText())); if (element.getName().equals("name")) info.setName(element.getText()); if (element.getName().equals("pwd")) info.setPwd(element.getText()); if (element.getName().equals("rolesid")) info.setRolesid(Integer.parseInt(element.getText())); if (element.getName().equals("rinfo")) info.setRinfo(getRolesByXml(element)); } return info; } public static Roles getRolesByXml(Element root){ Roles info=new Roles(); List
      
        elements=root.elements(); for (Element element : elements) { if (element.getName().equals("id")) info.setId(Integer.parseInt(element.getText())); if (element.getName().equals("name")) info.setName(element.getText()); } return info; } public static void readerXml()throws Exception { SAXReader reader=new SAXReader(); //加载XML文档 Document doc=reader.read(new File("src/Students.xml")); //获取根节点 Element root=doc.getRootElement(); getElements(root); } //递归获取Element的所有信息 public static void getElements(Element root){ List
       
         elements = root.elements(); for (Element element : elements) { System.out.println(element.getName()+"的class值是:"+element.attributeValue("class")); System.out.println(element.getName()+"的内容是:"+element.getText().trim()); getElements(element); } } }
       
      
     
    
   
  
 
XML文件中要读取的信息
 

 
	
   
   
    1001
    
   
    尼古拉斯金
    
   
    123456
    
   
    1
    
    
    
     1
     
    
     BOSS
     
    
  
	
	
   
   
    1002
    
   
    布莱恩特玉
    
   
    12345
    
   
    2
    
    
    
     2
     
    
     CEO
     
    
  
	
	
   
   
    1003
    
   
    西门上官
    
   
    1234
    
   
    3
    
    
    
     3
     
    
     CTO
     
    
  
	
	
   
   
    1004
    
   
    刘德华
    
   
    1234
    
   
    3
    
    
    
     3
     
    
     CTO
     
    
  
	
	

 
网友评论