`

解析xml文件

 
阅读更多
 Java中如何解析XML文件
Java中如何解析XML文件

xml文件:"student.xml"

xml 代码
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE zmclass SYSTEM "student.dtd">
  3. <zmclass id="0703">
  4. <student sex="男">
  5. <name>MICHAEL</name>
  6. <age>24</age>
  7. <address>武汉</address>
  8. </student>
  9. <student sex="女">
  10. <name>王黎</name>
  11. <age>24</age>
  12. <address>武汉</address>
  13. </student>
  14. <student sex="男">
  15. <name>莫智洲</name>
  16. <age>24</age>
  17. <address>武汉</address>
  18. </student>
  19. <student sex="男">
  20. <name>曹锋</name>
  21. <age>23</age>
  22. <address>武汉</address>
  23. </student>
  24. </zmclass>

dtd文件:"student.dtd"

python 代码
  1. <!--
  2. ELEMENT 元素
  3. ATTLIST 属性
  4. 元素出现的次数:
  5. *: 从“0”到“N”。
  6. +: 大于等于“1”
  7. ?: 是“0”或者是“1”。
  8. 默认: 只可能是“1”。
  9. 常用属性类型:
  10. CDATA:一般的文字。
  11. ID:该属性在XML文件中是唯一的,常用来表示身份证。
  12. ETC......
  13. #REQUIRED 大写
  14. #required 小写
  15. 表示在标记中必须出现此属性。
  16. #IMPLIED 大写
  17. #implied 小写
  18. 表示在标记中可以不出现的属性。
  19. #FIX 大写
  20. #fix 小写
  21. 表示在标记中是某个固定的值。
  22. -->
  23. <!ELEMENT zmclass (student+)>
  24. <!ELEMENT name (#PCDATA)>
  25. <!ELEMENT address (#PCDATA)>
  26. <!ELEMENT age (#PCDATA)>
  27. <!ATTLIST zmclass id CDATA #REQUIRED>
  28. <!--建立“父子”关系-->
  29. <!ELEMENT zmclass (name,address,age)>
  30. <!ATTLIST student sex (男|女) #REQUIRED>

java文件:"DomTest.java"

 

  1. package test;
  2. /**
  3. *
  4. * @描述:解析XML文件的测试类。
  5. * @作者: 赵明
  6. * 2007-9-5
  7. */
  8. import java.io.File;
  9. import java.io.IOException;
  10. import java.util.ArrayList;
  11. import java.util.Iterator;
  12. import java.util.List;
  13. import javax.xml.parsers.DocumentBuilder;
  14. import javax.xml.parsers.DocumentBuilderFactory;
  15. import javax.xml.parsers.ParserConfigurationException;
  16. import org.w3c.dom.Document;
  17. import org.w3c.dom.Element;
  18. import org.w3c.dom.Node;
  19. import org.w3c.dom.NodeList;
  20. import org.xml.sax.SAXException;
  21. public class DomTest {
  22. public static void main(String[] args){
  23. List stuArrList = new ArrayList();//创建用来保存学生信息的集合。
  24. DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
  25. try {
  26. DocumentBuilder builder = factory.newDocumentBuilder();
  27. Document doc = builder.parse(new File("student.xml"));
  28. Element root = doc.getDocumentElement();//得到文档对象树。
  29. //System.out.println(root);
  30. System.out.println("根元素名称:"+root.getTagName());
  31. NodeList stuList = root.getElementsByTagName("student");
  32. //开始逐个创建学生对象。
  33. for(int i = 0; i < stuList.getLength();i++){
  34. Student s = new Student();
  35. Element stuE = (Element)stuList.item(i);
  36. //System.out.println(stuE);
  37. s.setSex(stuE.getAttribute("sex"));//向学生对象中写入性别属性。
  38. NodeList stuInfoList = stuE.getChildNodes();
  39. for(int j = 0;j < stuInfoList.getLength();j++){
  40. Node temp = stuInfoList.item(j);
  41. if(temp.getNodeType()==Node.ELEMENT_NODE){//判断对象的类型的节点是不是元素。
  42. Element tempE = (Element)temp;//转换类型到元素。
  43. Node initW = tempE.getLastChild();
  44. //Node initW = tempE.getFirstChild();
  45. //由于只有一个节点,第一和最后一个都是同一个。
  46. if("name".equals(tempE.getNodeName())){
  47. s.setName(initW.getNodeValue());//加入姓名。
  48. }if("age".equals(tempE.getNodeName())){
  49. s.setAge((Integer.parseInt(initW.getNodeValue())));//加入年龄。
  50. }if("address".equals(tempE.getNodeName())){
  51. s.setAddress((initW.getNodeValue()));//加入地址。
  52. }
  53. }
  54. }
  55. stuArrList.add(s);//添加进集合中。
  56. }
  57. Iterator ite = stuArrList.iterator();//使用跌代器遍历集合元素。
  58. while(ite.hasNext()){
  59. Student s = (Student)ite.next();
  60. System.out.println(s);
  61. }
  62. } catch (ParserConfigurationException e) {
  63. e.printStackTrace();
  64. } catch (SAXException e) {
  65. e.printStackTrace();
  66. } catch (IOException e) {
  67. e.printStackTrace();
  68. }
  69. }
  70. }
java 代码

java文件:"Student.java"

java 代码
  1. package test;
  2. /**
  3. *
  4. * @描述:学生类用来保存学生的信息。
  5. * @作者: 赵明
  6. * 2007-9-5
  7. */
  8. public class Student {
  9. private String name;
  10. private String sex;
  11. private int age;
  12. private String address;
  13. public String toString(){//覆盖该方法。
  14. return name+"-"+sex+"-"+age+"-"+address;
  15. }
  16. public String getAddress() {
  17. return address;
  18. }
  19. public void setAddress(String address) {
  20. this.address = address;
  21. }
  22. public int getAge() {
  23. return age;
  24. }
  25. public void setAge(int age) {
  26. this.age = age;
  27. }
  28. public String getName() {
  29. return name;
  30. }
  31. public void setName(String name) {
  32. this.name = name;
  33. }
  34. public String getSex() {
  35. return sex;
  36. }
  37. public void setSex(String sex) {
  38. this.sex = sex;
  39. }
  40. }

 

运行结果:

ruby 代码
  1. 根元素名称:zmclass
  2. MICHAEL-男-24-武汉
  3. 王黎-女-24-武汉
  4. 莫智洲-男-24-武汉
  5. 曹锋-男-23-武汉
分享到:
评论

相关推荐

    java解析XML文件

    java解析XML文件java解析XML文件java解析XML文件java解析XML文件java解析XML文件java解析XML文件

    SAX解析XML文件实例

    SAX解析XML文件的实例。一个项目同时用dom解析和sax解析xml文件貌似会报错,项目框架建一直是用sax和dom4j解析xml文件的。当我用dom解析xml文件。导入包后就报错识别不了xml文件的编码格式。于是做了一个sax解析xml...

    Dom4j解析XML文档.doc

    Dom4j解析XML文档.doc Dom4j解析XML文档.doc Dom4j解析XML文档.doc Dom4j解析XML文档.doc

    python解析xml文件

    python解析xml文件,python语言解析xml文件的常用的有两种方式: 通过MiniDom库解析xml文件 通过ElementTree库解析xml文件

    C++解析xml文件

    C++实现对xml文件的解析,C++实现对xml文件的解析,C++实现对xml文件的解析。

    JAVA 解析XML生成XML文档实例

    JAVA 解析XML和生成XML文档源码。比较全 1.DOM生成和解析XML文档 2.SAX生成和解析XML文档 3.DOM4J生成和解析XML文档 4.JDOM生成和解析XML

    关于解析xml文件的,很有用的东东

    关于解析xml文件的,很有用的东东关于解析xml文件的,很有用的东东关于解析xml文件的,很有用的东东关于解析xml文件的,很有用的东东关于解析xml文件的,很有用的东东关于解析xml文件的,很有用的东东关于解析xml...

    MFC解析XML文档类

    MFC解析XML文档类 MFC解析XML文档类 MFC解析XML文档类 MFC解析XML文档类

    android 解析XML文件 生成XML文件

    支持SAX解析XML文件,DOM解析XML文件,Pull解析器解析XML文件,Pull生成XML文件,JAVA和Kotlin两种语言编写

    Sax解析XML文件解析

    Sax解析XML文件解

    使用javascript解析xml文件或xml格式字符串中文WORD版

    资源名称:使用Javascript解析xml文件或xml格式字符串 中文WORD版   内容简介: 本文档主要讲述的是使用Javascript解析xml文件或xml格式字符串;javascript中,不论是解析xml文件,...

    解析XML文档 实现树结构实例

    开发环境为VC,基于对话框,用msxml组件解析XML文档,运用递归循环的方法实现树结构,支持中文,可以运行的一个实例。

    解析XML文件例子

    解析XML文件例子

    PHP解析XML文档

    PHP解析XML文档,PHP解析XML文档,PHP解析XML文档

    tinyXMl解析XMl文件

    tinyxml解析XML文件

    Java中如何解析XML文件

    Java中如何解析XML文件,创建xml文件,增、删、改、查 xml节点信息

    pull解析xml文件

    pull解析xml文件

    jQuery 解析xml文件

    关于jq读取xml的,有需要的朋友可以下载。

    Sax解析xml文件

    Sax解析xml文件详细例子,解析复杂节点的xml,把内容显示到view中,例子简单完整,易用

Global site tag (gtag.js) - Google Analytics