XML userd in Java -----A DOM EXAMPLE

转载 2006年05月19日 12:15:00

The class you need listed here:

>>>>> StuInfo.xsl   StuInfo.xml Student.dtd master.txt MyDOMParser.class

StuInfo.xsl

<?xml version="1.0"?>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        xmlns:LIT="http://www.lit.edu.cn/student/"
        version="1.0">

    <xsl:template match="LIT:StuInfo">
        <html>
            <head>
                <title>Student Information</title>
            </head>
            <body>
                <xsl:apply-templates select="*"/>
            </body>
        </html>
    </xsl:template>

    <xsl:template match="LIT:student">
        <li>Name:<xsl:value-of select="LIT:name"/></li>
        <li>Sex:<xsl:value-of select="LIT:sex"/></li>
        <xsl:for-each select="LIT:lesson">
            <li>Lesson:<xsl:value-of select="LIT:lessonName"/>(<xsl:value-of select="LIT:lessonScore"/>)</li>
        </xsl:for-each>
    </xsl:template>

    <xsl:template match="LIT:breakLine">
        <hr/>
    </xsl:template>

    <xsl:template match="master">
        <xsl:copy-of select="*"/>
    </xsl:template>

</xsl:stylesheet>


Student.dtd

<!ELEMENT LIT:StuInfo ((LIT:student, LIT:breakLine)*, LIT:master)>
<!ATTLIST LIT:StuInfo xmlns:LIT CDATA #REQUIRED>
<!ELEMENT LIT:student (LIT:name, LIT:sex, LIT:lesson*)>
<!ELEMENT LIT:name (#PCDATA)>
<!ELEMENT LIT:sex (#PCDATA)>
<!ELEMENT LIT:lesson (LIT:lessonName, LIT:lessonScore)>
<!ELEMENT LIT:lessonName (#PCDATA)>
<!ELEMENT LIT:lessonScore (#PCDATA)>
<!ELEMENT LIT:breakLine EMPTY>
<!ELEMENT LIT:master (#PCDATA)>
<!ENTITY masterName SYSTEM "master.txt">

StuInfo.xml

<?xml version="1.0"?>
<?xml-stylesheet href="xsl/StuInfo.xsl" type="text/xsl"?>
<!DOCTYPE LIT:StuInfo SYSTEM "student.dtd">

<LIT:StuInfo xmlns:LIT="http://www.baidu.com/">
   
    <LIT:student>
        <LIT:name>bigmouse</LIT:name>
        <LIT:sex>male</LIT:sex>
        <LIT:lesson>
            <LIT:lessonName>math </LIT:lessonName>
            <LIT:lessonScore>60</LIT:lessonScore>
        </LIT:lesson>
        <LIT:lesson>
            <LIT:lessonName>Englist</LIT:lessonName>
            <LIT:lessonScore>59</LIT:lessonScore>
        </LIT:lesson>
        <LIT:lesson>
            <LIT:lessonName>autoCAD</LIT:lessonName>
            <LIT:lessonScore>80</LIT:lessonScore>
        </LIT:lesson>
        <LIT:lesson>
            <LIT:lessonName>SCM</LIT:lessonName>
            <LIT:lessonScore>90</LIT:lessonScore>
        </LIT:lesson>
        <LIT:lesson>
            <LIT:lessonName>mechanics</LIT:lessonName>
            <LIT:lessonScore>61</LIT:lessonScore>
        </LIT:lesson>
    </LIT:student>

    <LIT:breakLine/>

    <LIT:student>
        <LIT:name>coco</LIT:name>
        <LIT:sex>female</LIT:sex>
        <LIT:lesson>
            <LIT:lessonName>Math</LIT:lessonName>
            <LIT:lessonScore>90</LIT:lessonScore>
        </LIT:lesson>
        <LIT:lesson>
            <LIT:lessonName>English</LIT:lessonName>
            <LIT:lessonScore>95</LIT:lessonScore>
        </LIT:lesson>
        <LIT:lesson>
            <LIT:lessonName>C++</LIT:lessonName>
            <LIT:lessonScore>80</LIT:lessonScore>
        </LIT:lesson>
        <LIT:lesson>
            <LIT:lessonName>Java</LIT:lessonName>
            <LIT:lessonScore>85</LIT:lessonScore>
        </LIT:lesson>
    </LIT:student>

    <LIT:breakLine/>

    <LIT:master>&masterName;</LIT:master>

</LIT:StuInfo>

MyDOMParser.class
package com.test.XMLTest;

import org.w3c.dom.*;
import javax.xml.parsers.*;
import org.xml.sax.*;
import java.io.*;
import java.util.*;

public class MyDOMParser {
 //名字空间
 private String strNamespace = "http://www.baidu.com/";

 //一个学生的资料
 private Hashtable htbStudent = new Hashtable();

 //所有学生的向量列表
 private Vector vStuInfo = new Vector();

 public MyDOMParser() {
 }

 public static void main(String[] args) {
  if (args.length != 1) {
   System.out.println("Usage:java MyDOMParser [XML File URI]");
  }

  MyDOMParser myDOMParser = new MyDOMParser();
  myDOMParser.parseXMLFile("com/test/XMLTest/StuInfo.xml");
 }

 /**
  * 解析文档
  *
  * @param fileURI
  */
 public void parseXMLFile(String fileURI) {
  try {
   DocumentBuilderFactory factory = DocumentBuilderFactory
     .newInstance();
   //允许名字空间
   factory.setNamespaceAware(true);
   //允许验证
   factory.setValidating(true);
   //获得DocumentBuilder的一个实例
   DocumentBuilder builder = factory.newDocumentBuilder();
   //解析文档,并获得一个Document实例。
   Document doc = builder.parse(fileURI);
   //获得根节点StuInfo
   Element elmtStuInfo = doc.getDocumentElement();
   //得到所有student节点
   NodeList nlStudent = elmtStuInfo.getElementsByTagNameNS(
     strNamespace, "student");

   System.out.println("**** Student information start ****");

   //循环输出每一个学生资料
   for (int i = 0; i < nlStudent.getLength(); i++) {
    //当前student节点元素
    Element elmtStudent = (Element) nlStudent.item(i);

    NodeList nlCurrent = elmtStudent.getElementsByTagNameNS(
      strNamespace, "name");
    System.out.println("Name:"
      + nlCurrent.item(0).getFirstChild().getNodeValue());

    nlCurrent = elmtStudent.getElementsByTagNameNS(strNamespace,
      "sex");
    System.out.println("Sex:"
      + nlCurrent.item(0).getFirstChild().getNodeValue());

    nlCurrent = elmtStudent.getElementsByTagNameNS(strNamespace,
      "lesson");

    for (int j = 0; j < nlCurrent.getLength(); j++) {
     Element elmtLesson = (Element) nlCurrent.item(j);
     NodeList nlLesson = elmtLesson.getElementsByTagNameNS(
       strNamespace, "lessonName");
     System.out.print(nlLesson.item(0).getFirstChild()
       .getNodeValue());
     System.out.print(":");
     nlLesson = elmtLesson.getElementsByTagNameNS(strNamespace,
       "lessonScore");
     System.out.print(nlLesson.item(0).getFirstChild()
       .getNodeValue());
     System.out.print("/n");
    }

    System.out.println("------------------------------------");
   }

   System.out.println("**** Student information end ****");
  } catch (SAXException saxe) {
   System.out.println(saxe.getMessage());
  } catch (IOException ioe) {
   System.out.println(ioe.getMessage());
  } catch (ParserConfigurationException pce) {
   System.out.println(pce.getMessage());
  }
 }
}


Over .

Wish you a good luck

Java输出xml文件——DOM法写入《Dota…

本篇代码与之前的xml读取正好为反向的操作,前文中,将所有方法直接写在main()方法中,也可以写在外面,而在main()方法中调用。本文就以此方式来编写代码。 从本文代码中能看出来,由于不能直接使...
  • chao2016
  • chao2016
  • 2015年12月19日 09:52
  • 944

Java 应用DOM方式解析XML文件

引入java为啥需要解析XML的方法?xml的优势:它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或...
  • qq_23473123
  • qq_23473123
  • 2016年05月15日 13:53
  • 1868

Java&Xml教程(四)使用DOM方式生成XML文件

在前面的教程中,我们学习了使用DOM解析方式读取和修改XML文件内容,今天我们来学习如何使用DOM解析机制生成XML文件。 下面是我们对要生成的XML文件的具体要求: 1.根节点元素为”Emplo...
  • Rongbo_J
  • Rongbo_J
  • 2015年12月10日 21:22
  • 1949

Java解析xml文档之DOM解析--CRUD(增删改查)

DOM-Document Object Model-文档对像模型。是w3c组织处理xml的一种方式。特点:一次将所有数据全部加载到内存中。 对xml文档中的每一个节点都当成一个Node对像处理。包括...
  • new___Smile
  • new___Smile
  • 2016年06月29日 16:35
  • 1798

Java——DOM方式生成XML

学完了解析XML,就该学习生成XML文件了。首先学习的是如何使用DOM方式生成XML文件。使用DOM方式生成XML文件有如下几步:首先是创建DOM树(即规定XML文件中的内容): 创建Document...
  • u012325167
  • u012325167
  • 2016年03月21日 10:52
  • 12028

Java DOM解析XML的几个例子

Sample1: 1:新建XML文档 books.xml,放到项目的根目录下。 xml version="1.0" encoding="GB2312"?>    books  count="3" ...
  • John_Chang11
  • John_Chang11
  • 2017年02月14日 13:34
  • 1116

Java解析XML文件方法之一(DOM)

DOM的全称是Document Object Model,也即文档对象模型。在应用程序中,基于DOM的XML分析器将一个XML文档转换成一个对象模型的集合(通常称DOM树),应用程序正是通过对...
  • zp357252539
  • zp357252539
  • 2015年08月29日 08:45
  • 1308

Java以DOM方式解析生成xml文件或字符串

写了代码java代码,测试了在jdk 1.8下使用dom方式操作xml的技术可行性。
  • lee353086
  • lee353086
  • 2016年07月18日 15:50
  • 1832

java Dom 解析xml文档,实现xml文档结点的增删改查,遍历

java Dom 解析xml文档,实现xml文档结点的增删改查,遍历
  • yxmaomao1991
  • yxmaomao1991
  • 2016年03月23日 21:23
  • 2440

用JDK自带的包来解析XML文件(DOM+xpath)

DOM编程不要其它的依赖包,因为JDK里自带的JDK里含有的上面提到的org.w3c.dom、org.xml.sax 和javax.xml.parsers包就可以满意条件了。 (1)org.w3c....
  • wzyzzu
  • wzyzzu
  • 2016年07月11日 14:36
  • 1155
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:XML userd in Java -----A DOM EXAMPLE
举报原因:
原因补充:

(最多只允许输入30个字)