在WEB工程中,jsp文件如何读取XML文件的信息?

在WEB工程中,jsp文件如何读取XML文件的信息?,第1张

jsp中读取xml文件中内容的方法,案例如下:

1、XML文件

<?xml version="1.0" encoding="GB2312" ?> 

<!-- 个人履历表--> 

<resume>

<person id="01">

   <name>张三</name> 

   <birthday>03/24/1975</birthday>  

   <phone>1111-1111</phone> 

   <address>大连</address>

</person>  

<person id="02">

   <name>李四</name> 

   <birthday>9/26/1978</birthday>  

   <phone>2222-2222</phone> 

   <address>南京</address>

</person>   

<person id="03">

   <name>王五</name> 

   <birthday>11/09/1979</birthday>  

   <phone>3333-3333</phone> 

   <address>武汉</address>

</person>   

<person id="04">

   <name>赵六</name> 

   <birthday>6/04/1973</birthday>  

   <phone>4444-4444</phone> 

   <address>青岛</address>

</person>   

<person id="05">

   <name>陈七</name> 

   <birthday>12/19/1977</birthday>  

   <phone>5555-5555</phone> 

   <address>上海</address>

</person>   

</resume>

2、MyDOMBean.java

package test

import org.xml.sax.* 

import javax.xml.parsers.*

import org.w3c.dom.*

import java.io.*

public class MyDOMBean implements java.io.Serializable ...{

   private static String xmlStr=""

   private static final String PATH="file:///"

   public MyDOMBean() ...{

   }

   public String getString()...{

        return xmlStr

   }

   public static Document getDocument(String filename) throws Exception ...{

       xmlStr=""

       DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance()

        // 设定解析的叁数

        dbf.setIgnoringComments(true)

        dbf.setIgnoringElementContentWhitespace(true)

        DocumentBuilder db = dbf.newDocumentBuilder()

        //导入XML文件

        Document doc = db.parse(PATH+filename)

       

       return doc

   }

     public void traverseTree(Node node) throws Exception ...{

         if(node == null) ...{

            return

         }

         int type = node.getNodeType()

         switch (type) ...{

            //  *** 作DOCUMENT对象节点

            case Node.DOCUMENT_NODE: ...{

               xmlStr+="<tr>"

               traverseTree(((Document)node).getDocumentElement())

               break

            }

            //  *** 作XML元素节点

            case Node.ELEMENT_NODE: ...{

               String elementName = node.getNodeName()

               if(elementName.equals("person")) ...{

                 xmlStr+="</tr><tr>"

               }

               NodeList childNodes =node.getChildNodes()

               if(childNodes != null) ...{

                  int length = childNodes.getLength()

                  for (int loopIndex = 0 loopIndex <

                  length  loopIndex++)

                  ...{

                     traverseTree(childNodes.item(loopIndex))

                  }

               }

               break

            }

            //  *** 作XML文本节点

            case Node.TEXT_NODE: ...{

               String data = node.getNodeValue().trim()

               if((data.indexOf(" ")  <0) && (data.length()> 0)) ...{

                 xmlStr+="<td>"+data+"</td>"

               }

            }

         }

    }

}

3、jsp文件

<html>

<head>

<title>使用DOM解析器</title>

</head>

<%...@ page import="org.w3c.dom.*"%>

<%...@ page contentType="text/htmlcharset=GB2312" %>

<body bgcolor="#CFF1E1">

<center>

<h2>个人履历表(DOM版)</h2>

<table border="1" width="80%">

<tr>

<td>姓名</td>

<td>出生年月</td>

<td>电话号码</td>

<td>居住地</td>

</tr>

<jsp:useBean id="domparser" class="test.MyDOMBean" />

<%...  

   Document doc = domparser.getDocument(request.getRealPath("/") + "08_02.xml")

   domparser.traverseTree(doc)

   out.print(domparser.getString())

%>

</body>

</html>

你去查下<xml>这个标签的用法,下面是个例子

<body>

<xml id="tree">

${xml信息}//你可以先把你的XML组织一下放到request然后通过这种方式EL方式放这

</xml>

</body>

<script language="JavaScript">

var xmlElement = window.document.getElementById("tree")

var root = xmlElement.XMLDocument.documentElement

//root就是和jdom解析XML一样就是根节点,以后和JDOM的 *** 作也很像

</script>


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/7971860.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存