如何从XML文件中提取并展示相关信息?

2026-04-15 07:5711阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计506个文字,预计阅读时间需要3分钟。

如何从XML文件中提取并展示相关信息?

Java功能模块包声明+导入以下库:+ org.jxnd.test+ java.io.File+ java.util.ArrayList+ java.util.List+ org.dom4j.Document+ org.dom4j.DocumentException+ org.dom4j.Element+ org.dom4j.io.SAXReader

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

如何从XML文件中提取并展示相关信息?

本文共计506个文字,预计阅读时间需要3分钟。

如何从XML文件中提取并展示相关信息?

Java功能模块包声明+导入以下库:+ org.jxnd.test+ java.io.File+ java.util.ArrayList+ java.util.List+ org.dom4j.Document+ org.dom4j.DocumentException+ org.dom4j.Element+ org.dom4j.io.SAXReader

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

如何从XML文件中提取并展示相关信息?