`
mypengkun
  • 浏览: 13611 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

JSP DOM解析器

    博客分类:
  • Java
阅读更多

<!--
Sams Teach Yourself JavaServer Pages in 21 Days (Paperback)
by Steven Holzner (Author), Steve Holzner (Author)

# Publisher: Sams; 1st edition (September 192002)
# Language: English
# ISBN-100672324490
# ISBN-13978-0672324499
-->

<%@ page import="javax.xml.parsers.*, org.xml.sax.*, org.xml.sax.helpers.*, org.w3c.dom.*, java.io.*"
 %>

<%!
public class xparser 
{
    String displayStrings[] new String[1000];
    int numberDisplayLines = 0;

    public String[] displayDocument(String uri
    {
        try {

        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

        DocumentBuilder db = null;
        try {
            db = dbf.newDocumentBuilder();
        
        catch (ParserConfigurationException pce) {}

        Document document = null;
        document = db.parse(uri);

        numberDisplayLines = 0;
        display(document, "");

        catch (Exception e) {
            e.printStackTrace(System.err);
        }

        return displayStrings;
    

    public void display(Node node, String indent
    {
        if (node == null) {
            return;
        }

        int type = node.getNodeType();

        switch (type) {
            case Node.DOCUMENT_NODE: {
                displayStrings[numberDisplayLines= indent;
                displayStrings[numberDisplayLines+= "&lt;?xml version=\"1.0\" encoding=\""+
                  "UTF-8" "\"?&gt;";
                numberDisplayLines++;
                display(((Document)node).getDocumentElement()"");
                break;
             }

             case Node.ELEMENT_NODE: {
                 displayStrings[numberDisplayLines= indent;
                 displayStrings[numberDisplayLines+= "&lt;";
                 displayStrings[numberDisplayLines+= node.getNodeName();

                 int length = (node.getAttributes() != null? node.getAttributes().getLength() 0;
                 Attr attributes[] new Attr[length];
                 for (int i = 0; i < length; i++) {
                     attributes[i(Attr)node.getAttributes().item(i);
                 }

                 for (int i = 0; i < attributes.length; i++) {
                     Attr attribute = attributes[i];
                     displayStrings[numberDisplayLines+= " ";
                     displayStrings[numberDisplayLines+= attribute.getNodeName();
                     displayStrings[numberDisplayLines+= "=\"";
                     displayStrings[numberDisplayLines+= attribute.getNodeValue();
                     displayStrings[numberDisplayLines+= "\"";
                 }
                 displayStrings[numberDisplayLines+= "&gt;";

                 numberDisplayLines++;

                 NodeList childNodes = node.getChildNodes();
                 if (childNodes != null) {
                     length = childNodes.getLength();
                     indent += "&nbsp;&nbsp;&nbsp;&nbsp;";   
                     for (int i = 0; i < length; i++ ) {
                        display(childNodes.item(i), indent);
                     }
                 }
                 break;
             }

             case Node.CDATA_SECTION_NODE: {
                 displayStrings[numberDisplayLines= indent;
                 displayStrings[numberDisplayLines+= "&lt;![CDATA[";
                 displayStrings[numberDisplayLines+= node.getNodeValue();
                 displayStrings[numberDisplayLines+= "]]&gt;";
                 numberDisplayLines++;
                 break;
             }

             case Node.TEXT_NODE: {
                 displayStrings[numberDisplayLines= indent;
                 String newText = node.getNodeValue().trim();
                 if(newText.indexOf("\n"&& newText.length() 0) {
                     displayStrings[numberDisplayLines+= newText;
                     numberDisplayLines++;
                 }
                 break;
             }

             case Node.PROCESSING_INSTRUCTION_NODE: {
                 displayStrings[numberDisplayLines= indent;
                 displayStrings[numberDisplayLines+= "&lt;?";
                 displayStrings[numberDisplayLines+= node.getNodeName();
                 String text = node.getNodeValue();
                 if (text != null && text.length() 0) {
                     displayStrings[numberDisplayLines+= text;
                 }
                 displayStrings[numberDisplayLines+= "?&gt;";
                 numberDisplayLines++;
                 break;
            }    
        }

        if (type == Node.ELEMENT_NODE) {
            displayStrings[numberDisplayLines= indent.substring(0, indent.length() 24);
            displayStrings[numberDisplayLines+= "&lt;/";
            displayStrings[numberDisplayLines+= node.getNodeName();
            displayStrings[numberDisplayLines+= "&gt;";
            numberDisplayLines++;
            indent += "    ";
        }
    
}
%>

<HTML>
  <HEAD>
    <TITLE>Parsing an XML Document With DOM</TITLE>
  </HEAD>

  <BODY>
    <h1>Parsing an XML Document With DOM</h1>

    <% xparser p = new xparser()

        String[] s = p.displayDocument(application.getRealPath("/""test.xml");
 
        for(int i = 0; i < s.length; i++){
            if(s[i!= null){
    %>
            <%= s[i%><BR>
    <%
            }
        }
    %>
    </BODY>
</HTML>

分享到:
评论

相关推荐

    DOM编辑器用于JSP

    DOM是一种独立于语言和平台的XML解析模型。给出了支持DOM核心模型和多种DOM扩展规范的XML编辑器ONCEXMLEditor的实现。ONCEXMLEditor具有高效的XML验证和序列化性能,同时提供给用户多种功能,包括按需遍历文档、提供上...

    jsp操作xml源码,解析器为DOM和SAX

    利用JSP直接读写XML文件,分别用DOM解析器和SAX解析器加以实现,非常适合初学者入门,作为一个了解jsp与XML的台阶

    Jsoup 解析JSP

    jsoup 是一款 Java 的HTML 解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于JQuery的操作方法来取出和操作数据。 但是他不支持JSP页面,例如不支持: 1、; ...

    第十一章 JSP中使用XML(新)1

    第十一章11.1 XML文件的基本结构11.3 标记11.4 DOM解析器11.5 SAX解析器本章主要内容如果Web应用没有用到数据库独有的一些特性,而仅仅是

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    3.2.2 dom解析器工厂 50 3.2.3 jaxp的错误类和异常类 52 3.2.4 用dom解析xml文档实例 53 3.3 使用sax解析xml文档 65 3.3.1 sax的处理机制 66 3.3.2 配置sax解析器 69 3.3.3 sax解析器工厂 70 3.3.4 sax的异常...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    3.2.2 dom解析器工厂 50 3.2.3 jaxp的错误类和异常类 52 3.2.4 用dom解析xml文档实例 53 3.3 使用sax解析xml文档 65 3.3.1 sax的处理机制 66 3.3.2 配置sax解析器 69 3.3.3 sax解析器工厂 70 3.3.4 sax的异常...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    3.2.2 dom解析器工厂 50 3.2.3 jaxp的错误类和异常类 52 3.2.4 用dom解析xml文档实例 53 3.3 使用sax解析xml文档 65 3.3.1 sax的处理机制 66 3.3.2 配置sax解析器 69 3.3.3 sax解析器工厂 70 3.3.4 sax的异常...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    3.2.2 dom解析器工厂 50 3.2.3 jaxp的错误类和异常类 52 3.2.4 用dom解析xml文档实例 53 3.3 使用sax解析xml文档 65 3.3.1 sax的处理机制 66 3.3.2 配置sax解析器 69 3.3.3 sax解析器工厂 70 3.3.4 sax的异常...

    学生信息管理系统

    这个课程设计是基于jsp和xml语言开发的,应用ACCESS数据库,有DOM解析器。包括学生信息查询和学生信息管理两大方面,有按学号查找和按页查找两项,管理有添加和删除功能。附带有完美文档。

    电子商务网站开发课件新课件(J2EE)

    本课件是自己上课时用的课件,主要介绍J2EE框架概述、XML,以及处理XML的DOM和SAX解析器,JDNI原理,JSP基础知识,标签的原理、编程、配制。SERVLET、EJB原理等

    JAVA编程百例(照着例子更容易!)

    实例68 使用DOM解析XML 实例69 使用SAX解析XML 实例7 接口和抽象类 实例70 使用JDOM解析XML 实例71 使用JDOM操作XML 实例72 欢迎进入APPLET世界 实例73 传递参数 实例74 监测鼠标事件 实例75 监测键盘事件 实例76 在...

    java web 视频、电子书、源码(李兴华老师出版)

    3.2.1、DOM解析操作 3.2.2、SAX解析操作 3.2.3、XML解析的好帮手:JDOM 3.2.4、最出色的解析工具:DOM4J 3.3、使用JavaScript操作DOM 3.4、开发实战讲解(基于Oracle数据库) 第4章 Tomcat服务器的安装及配置 ...

    李兴华 Java Web 开发实战经典_带源码_高清pdf 带书签 上

    3.2.1、DOM解析操作 3.2.2、SAX解析操作 3.2.3、XML解析的好帮手:JDOM 3.2.4、最出色的解析工具:DOM4J 3.3、使用JavaScript操作DOM 3.4、开发实战讲解(基于Oracle数据库) 第4章 Tomcat服务器的安装及配置 ...

    MLDN+李兴华+Java+Web开发实战经典.part3.rar )

    3.2.1、DOM解析操作 3.2.2、SAX解析操作 3.2.3、XML解析的好帮手:JDOM 3.2.4、最出色的解析工具:DOM4J 3.3、使用JavaScript操作DOM 3.4、开发实战讲解(基于Oracle数据库) 第4章 Tomcat服务器的安装及配置 ...

    李兴华 java_web开发实战经典 源码 完整版收集共享

    3.2.1、DOM解析操作 3.2.2、SAX解析操作 3.2.3、XML解析的好帮手:JDOM 3.2.4、最出色的解析工具:DOM4J 3.3、使用JavaScript操作DOM 3.4、开发实战讲解(基于Oracle数据库) 第4章 Tomcat服务器的安装及配置 ...

    李兴华 Java Web 开发实战经典_带源码_高清pdf 带书签 下

    3.2.1、DOM解析操作 3.2.2、SAX解析操作 3.2.3、XML解析的好帮手:JDOM 3.2.4、最出色的解析工具:DOM4J 3.3、使用JavaScript操作DOM 3.4、开发实战讲解(基于Oracle数据库) 第4章 Tomcat服务器的安装及配置 ...

    李兴华Java Web开发实战经典.pdf (高清版) Part1

    3.2.1、DOM解析操作 3.2.2、SAX解析操作 3.2.3、XML解析的好帮手:JDOM 3.2.4、最出色的解析工具:DOM4J 3.3、使用JavaScript操作DOM 3.4、开发实战讲解(基于Oracle数据库) 第4章 Tomcat服务器的安装及配置 ...

    李兴华 Java Web 开发实战经典 高清扫描版Part3

    3.2.1、DOM解析操作 3.2.2、SAX解析操作 3.2.3、XML解析的好帮手:JDOM 3.2.4、最出色的解析工具:DOM4J 3.3、使用JavaScript操作DOM 3.4、开发实战讲解(基于Oracle数据库) 第4章 Tomcat服务器的安装及配置 ...

    李兴华Java Web开发实战经典(高清版) Part2

    3.2.1、DOM解析操作 3.2.2、SAX解析操作 3.2.3、XML解析的好帮手:JDOM 3.2.4、最出色的解析工具:DOM4J 3.3、使用JavaScript操作DOM 3.4、开发实战讲解(基于Oracle数据库) 第4章 Tomcat服务器的安装及配置 ...

    Java语言基础下载

    DOM解析的例子: 406 SAX解析实例 409 DOM4J解析实例 412 JDOM解析实例 413 JAVA操纵XML 实例讲解 414 通过JAVA写数据到XML里面 415 内容总结 418 独立实践 418 第二十三章:HTML基础 419 学习目标 419 知识要点 420...

Global site tag (gtag.js) - Google Analytics