xml的解析
来源:互联网 发布:炽阳魔盒软件下载 编辑:程序博客网 时间:2024/06/17 18:27
第一中w3c的解析方式去实现的
1首先创建一个xml文件 xml中自定义但是标签要成对存在
<?xml version="1.0" encoding="utf-8" ?><persons> <person> <name>zs</name> <age>19</age> <sex>女</sex> </person> <person> <name>ls</name> <age>20</age> <sex>男</sex> </person> <person> <name>wu</name> <age>21</age> <sex>女</sex> </person></persons>
2.创建一个相对应的类 这是我自己创建的
public class Person { public Person() {} public Person(String name, String age, String sex) { this.name = name; this.age = age; this.sex = sex; } @Override public String toString() { return name+"\t"+age+"\t"+sex; } public void setName(String name) { this.name = name; } public void setAge(String age) { this.age = age; } public void setSex(String sex) { this.sex = sex; } private String name; public String getName() { return name; } public String getAge() { return age; } public String getSex() { return sex; } private String age; private String sex;}3.解析xml
public static void main(String[] args)throws Exception { //w3c dom //创建 dom解析的工厂 DocumentBuilderFactory dbf= DocumentBuilderFactory.newInstance(); //生产一种设备dom解析器 DocumentBuilder db=dbf.newDocumentBuilder(); //解析成Dom(document) Document d=db.parse("src/xml/persons.xml"); //处理你关心的数据 Element root=d.getDocumentElement(); System.out.println(root); NodeList nodlist= root.getChildNodes(); List<Person> people=new ArrayList<Person>(); for (int i = 0; i<nodlist.getLength(); i++) { Node node=nodlist.item(i); if(node.getNodeType()==Node.ELEMENT_NODE){ System.out.println(node); NodeList pnl=node.getChildNodes(); String name=null; String age=null; String sex=null; for (int j = 0; j <pnl.getLength() ; j++) { Node pn=pnl.item(j); if(pn.getNodeType()==Node.ELEMENT_NODE){ if(pn.getNodeName().equals("name")){ name=pn.getTextContent(); } if(pn.getNodeName().equals("age")){ age=pn.getTextContent(); } if(pn.getNodeName().equals("sex")){ sex=pn.getTextContent(); } } } people.add(new Person(name,age,sex)); } } for (Person p:people) { System.out.println(p); }}这样就可以解析出xml标签中的数据了 引入的都是w3c的import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.Node;import org.w3c.dom.NodeList;
第二种dom4j解析xml
public void testreadxml(){try {////获取解析器//SAXReader saxr=new SAXReader();////document文档//Document doc=saxr.read("src/com/bdqn/xml/MyXml.xml");////获取根元素//Element rootel= doc.getRootElement();////System.out.println(rootel.getName());////获取根下的子元素//Element chilElement= rootel.element("servlet");// //获取servlet-class的文本节点//String servletclass=chilElement.element("servlet-class").getText();// //通过全名获取字节码//Class clazz=Class.forName(servletclass);////创建实例//Myservlet my=(Myservlet) clazz.newInstance();//my.init();} catch (Exception e) {e.printStackTrace();}}
两种方式各有个的优缺点 根据自己的实际情况选择
阅读全文
0 0
- XML的解析 DOM解析
- 解析xml的字符串
- xml的解析
- xml的解析
- XML的解析
- 微软的 XML 解析
- xml文件的解析
- 关于XML的解析
- xml的解析
- XML的解析方法
- XML的java解析- -
- 解析xml的方法
- XML的解析模型
- 解析xml的方式
- xml的解析方法
- XML的pull解析
- android的xml解析
- XML的解析
- 剑指offer之正则表达式匹配
- list条目展示网络图片和文字
- 加油啊,都记住
- C++ IO笔记
- 【线性递推DP】hdu 5550
- xml的解析
- BZOJ1705 Telephone Wire 架设电话线
- 验证跨网段通信中,目标主机的网关配置对数据包接收的影响
- Apache Shiro 学习笔记1
- 深入浅出GNU X86-64 汇编
- TimeMachine_Timeline Generation for Knowledge-Base Entities
- POJ 1051 P,MTHBGWB
- 【笔试】java程序main方法的参数String[] args
- spring框架中的ModelMap和ModelAndView的区别