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

转载 2006年05月19日 11:48: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 应用DOM方式解析XML文件

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

JAVA操作XML的完整例子——W3C DOM篇

这是一个用JAVA W3C DOM 进行XML操作的例子,包含了查询、增加、修改、删除、保存的基本操作。较完整的描述了一个XML的整个操作流程。适合刚入门JAVA XML操作的朋友参考和学习。假设有X...
  • cds27
  • cds27
  • 2008年03月02日 13:59
  • 40005

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

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

Java DOM读写XML

2010-02-01 16:38DOM 是用与平台和语言无关的方式表示 XML 文档的官方 W3C 标准。DOM 是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分...
  • amaryh
  • amaryh
  • 2010年02月28日 00:12
  • 5584

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

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

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

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

JAVA DOM生成和解析XML实例

XML现在已经成为一种通用的数据交换格式,平台的无关性使得很多场合都需要用到XML。java操作XML时候有4中经典方法,本文将介绍DOM操作XML。并给出一个用DOM生成和解析XML的实例。 初始...
  • a1091220321
  • a1091220321
  • 2014年04月18日 14:05
  • 3505

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

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

Java——DOM方式生成XML

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

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

本篇代码与之前的xml读取正好为反向的操作,前文中,将所有方法直接写在main()方法中,也可以写在外面,而在main()方法中调用。本文就以此方式来编写代码。 从本文代码中能看出来,由于不能直接使...
  • chao2016
  • chao2016
  • 2015年12月19日 09:52
  • 966
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:XML userd in Java -----A DOM EXAMPLE
举报原因:
原因补充:

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