JSP中对XML操作基本范例

JSP中用DOM读取xml文件

<%@ page language="java" contentType="text/html; charset=GB18030"
 pageEncoding="GB18030"%>
<%@ page import="java.io.*"%>
<%@ page import="javax.xml.parsers.*"%>
<%@ page import="org.w3c.dom.*"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
  <title>DomReadXml练习操作</title>
 </head>
 <body>
  <%
   //该方法为固定格式应背出
   //用输入流对象接收xml文件,注意xml文件的地址,加了/表示在WEB-INF/classes/下
   InputStream is = pageContext.getServletContext()
     .getResourceAsStream("/NewFile.xml");
   //建立解析工厂
   DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
   //忽略元素中的空格
   dbf.setIgnoringElementContentWhitespace(true);
   //建立解析器
   DocumentBuilder db = dbf.newDocumentBuilder();
   //获取文档对象
   Document doc = db.parse(is);

   //获取节点列表
   NodeList nlist = doc.getElementsByTagName("user");
   //获取节点下的所有数据列表
   NodeList IdList = doc.getElementsByTagName("Id");
   NodeList stuNameList = doc.getElementsByTagName("stuName");
   NodeList stuSexList = doc.getElementsByTagName("stuSex");
   NodeList stuAgeList = doc.getElementsByTagName("stuAge");
   NodeList stuAddressList = doc.getElementsByTagName("stuAddress");
  %>
  <table>
   <tr>
    <td>
     用户ID
    </td>
    <td>
     姓名
    </td>
    <td>
     性别
    </td>
    <td>
     年龄
    </td>
    <td>
     地址
    </td>
   </tr>
   <%
    //通过循环遍历所有nlist列表中的数据
    for (int i = 0; i < nlist.getLength(); i++) {
   %>
   <tr>
    <td>
     <%=IdList.item(i).getFirstChild().getNodeValue()%>
    </td>
    <td>
     <%=stuNameList.item(i).getFirstChild().getNodeValue()%>
    </td>
    <td>
     <%=stuSexList.item(i).getFirstChild().getNodeValue()%>
    </td>
    <td>
     <%=stuAgeList.item(i).getFirstChild().getNodeValue()%>
    </td>
    <td>
     <%=stuAddressList.item(i).getFirstChild()
          .getNodeValue()%>
    </td>
   </tr>
   <%
   }
   %>
  </table>
 </body>
</html>

JDOM读取xml范例

<%@ page language="java" contentType="text/html; charset=GB18030"
 pageEncoding="GB18030"%>
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<%@ page import="org.jdom.*"%>
<%@ page import="org.jdom.input.*"%>
<%@ page import="org.jdom.output.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=GB18030">
  <title>JdomReadXml读取操作</title>
 </head>
 <body>
  <table>
   <tr>
    <td>
     用户ID
    </td>
    <td>
     姓名
    </td>
    <td>
     性别
    </td>
    <td>
     年龄
    </td>
    <td>
     地址
    </td>
   </tr>
   <%
    //创建对象
    SAXBuilder builder = new SAXBuilder();
    //建立Document对象
    Document doc = builder.build(pageContext.getServletContext()
      .getResourceAsStream("NewFile.xml"));
    //获取根元素
    Element rootElement = doc.getRootElement();
    //获取子元素列表
    List list = rootElement.getChildren();
    //通过循环遍历子元素列表
    for (Iterator i = list.iterator(); i.hasNext();) {
     //通过Iterator对象将下一次循环的数据转换成元素对象
     Element current = (Element) i.next();
   %>
   <tr>
    <td>
     <%=current.getChildText("Id")%>
    </td>
    <td>
     <%=current.getChildText("stuName")%>
    </td>
    <td>
     <%=current.getChildText("stuSex")%>
    </td>
    <td>
     <%=current.getChildText("stuAge")%>
    </td>
    <td>
     <%=current.getChildText("stuAddress")%>
    </td>
   </tr>
   <%
   }
   %>
  </table>
 </body>
</html>

 

 

JDOM修改xml范例

<%@ page language="java" contentType="text/html; charset=GB18030"
 pageEncoding="GB18030"%>
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<%@ page import="org.jdom.*"%>
<%@ page import="org.jdom.input.*"%>
<%@ page import="org.jdom.output.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=GB18030">
  <title>JdomModifyXml修改操作</title>
 </head>
 <body>
  <table border="1">
   <tr>
    <td>
     用户ID
    </td>
    <td>
     姓名
    </td>
    <td>
     性别
    </td>
    <td>
     年龄
    </td>
    <td>
     地址
    </td>
   </tr>
   <%
   //------------修改xml文件内容----------------------
    SAXBuilder builder = new SAXBuilder();
    Document readDocument = builder.build(pageContext
      .getServletContext().getResourceAsStream("NewFile.xml"));
    Element rootElement = readDocument.getRootElement();    
    //------------------查找要修改的信息------------------------
    //将子结点列表放入list中
    List list = rootElement.getChildren();
    for (Iterator i=list.iterator();i.hasNext();){
     Element child = (Element)i.next();
     if (child.getChildText("Id").equals("1")){
      child.getChild("Id").setText("20");
      
     }
    }

    //使用该方式循环和上面的遍历一样效果
    for (int i=0;i<list.size();i++){
     Element child = (Element)list.get(i);
     if (child.getChildText("Id").equals("1")){
      child.getChild("Id").setText("20");     
     }
    }
    //----------------------------------
    
    
    //--------------保存Document到xml文件---------------
    //建立pretty格式的的格式化对象
    Format format = Format.getPrettyFormat();
    //设置编码类型
    format.setEncoding("gb2312");
    //输出到xml文件
    XMLOutputter xmlOutput = new XMLOutputter(format);
    String filename = pageContext.getServletContext().getRealPath("NewFile.xml");
    xmlOutput.output(readDocument,new FileOutputStream(filename));
   %>
  </table>
 </body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值