討論區快速選單
知識庫快速選單
程式設計俱樂部Facebook粉絲團 我的IT職涯該如何規劃 ? 下載Alexa Toolbar讓你上網更有趣
[ 回上頁 ] [ 討論區發言規則 ]
請問jsp怎麼存成一個xml檔??
更改我的閱讀文章字型大小
作者 : fanny(FANNY)
[ 貼文 115 | 人氣 6585 | 評價 60 | 評價/貼文 0.52 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/11/24 下午 04:11:59
我目前的想法是先 用getparmeter的方式把html的值抓出來
再用vector的方式存起來..之後再抓出來包上xml的自訂標籤
再用file的方式存成.xml檔!
你們覺得這種方式就可以利 用jsp產生一個xml的檔了嗎?
還是有其他的方式!!
可不可以教我一下!!!! 謝謝
 好久都沒來這裡了
作者 : safe(法蘭克) 貼文超過200則
[ 貼文 336 | 人氣 374 | 評價 80 | 評價/貼文 0.24 | 送出評價 5 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/11/25 下午 12:48:29
JDOM

http://www.jdom.org/
作者 : fanny(FANNY)
[ 貼文 115 | 人氣 6585 | 評價 60 | 評價/貼文 0.52 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/11/25 下午 11:35:44
不好意思! 我現在會了! 可是我是用很笨的方法產生一個xml的檔
! 如果照法蘭克先生你說的用jdom的方法的話!!
那不就是jsp和java 寫在一起了!! 我不知 道這樣怎麼去執行耶!
因為是先寫一個jsp檔去抓htm內的值再寫一個java去jdom 產生一個
xml檔!! 可是這樣jsp檔之後就去跑一個java  檔!!
怎麼寫啊??用action=*.JAVA嗎???

以下是我用笨方法去產生 一個xml的檔!!先去抓另一個jsp的值再
寫入成一個xml的檔!!
可是我好想用法蘭克先生你說的那個方法哦!!
可是就不太會!! 可否教一下!!謝謝!!
^_^!! 你是我的大恩人!! 謝謝你啦!
<%@ page contentType="text/html; charset=Big5"
              language="java"
              import="java.io.*"%>
         
<%

//參考JSP動態網頁入門實務newLine.jsp p9-41

String T1 = request.getParameter("Start_Add");
String T2 = request.getParameter("End_Add");
String T3 = request.getParameter("year1");
String T4 = request.getParameter("month1");
String T5 = request.getParameter("date1");
String T6=T3+"/"+T4+"/"+T5;
String T7 = request.getParameter("Need_Class");
//從html中抓資料出來

String path = request.getRealPath(".");
//取得目前目錄在伺服端的實際位置

FileWriter fw = new FileWriter(path + "\\order-air.xml");
//建立FileWrite物件,並設定由fw物件變數引用

BufferedWriter bw = new BufferedWriter(fw);
//建立BufferedWriter物件,並設定由bw物件變數引用

//將字串寫入檔案
bw.write("<?xml version=\"1.0\" encoding=\"Big5\"?>");
bw.write("<Order_Air>");
bw.write("<Start_Add>"+T1+"</Start_Add>");
bw.write("<End_Add>"+T2+"</End_Add>");
bw.write("<Date_Time>"+T6+"</Date_Time>");
//bw.write("<year1>"+T3+"</year1>");
//bw.write("<month1>"+T4+"</month1>");
//bw.write("<date1>"+T5+"</date1>");
bw.write("<Need_Class>"+T7+"</Need_Class>");
bw.write("</Order_Air>");

bw.flush(); //將資料更新至檔案

bw.close(); //關閉BufferedWriter物件
fw.close(); //關閉檔案
%>
作者 : safe(法蘭克) 貼文超過200則
[ 貼文 336 | 人氣 374 | 評價 80 | 評價/貼文 0.24 | 送出評價 5 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/11/26 下午 12:47:15
一個簡單的例子:
import java.io.*;
import java.util.*;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.output.XMLOutputter;

public class XMLOutputterTest{

//--------------------------------------------------------
// Object Attribute
//--------------------------------------------------------
private ArrayList  _list;
private Element   _root;
private File _file;

private FileWriter   _writer;
private BufferedWriter _buffer;

//--------------------------------------------------------
// Constructor
//--------------------------------------------------------
public XMLOutputterTest(String root) {
_list = new ArrayList();
_root = new Element(root);
}

public XMLOutputterTest(String root, String filename) {
this(root);
_file = new File(filename);
}

//--------------------------------------------------------
// Object Operator
//--------------------------------------------------------
public void setFile(String filename) {
_file = new File(filename);
}

public void addElement(String ele) {
Element element = new Element(ele); 
_list.add(element);
}

public void addElement(String ele, String text) {
Element element = new Element(ele);
element.setText(text);
_list.add(element);
}

public void output() {
Iterator iterator = _list.iterator();
while(iterator.hasNext()) {
_root.addContent((Element)iterator.next());
}

try {
XMLOutputter outputter = new XMLOutputter();
_file = (_file!=null) ? _file : new File("test.xml");
_writer = new FileWriter(_file);
_buffer = new BufferedWriter(_writer);
Document doc = new Document(_root);
outputter.setIndent(true);
         outputter.output(doc, _buffer);
}
catch (Exception e) {
e.printStackTrace();
}
finally {
try {
if (_buffer != null) _buffer.close();
if (_writer != null) _writer.close();
}
catch(Exception e) {}
}
}

作者 : safe(法蘭克) 貼文超過200則
[ 貼文 336 | 人氣 374 | 評價 80 | 評價/貼文 0.24 | 送出評價 5 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/11/26 下午 12:47:33
public static void main(String[] args) throws Exception {
//XMLOutputterTest test = new XMLOutputterTest("Order_Air");
XMLOutputterTest test = new XMLOutputterTest("Order_Air", "testOutput.xml");
test.addElement("Start_Add", "T1");
test.addElement("End_Add", "T2");
test.addElement("Date_Time", "T6");
test.addElement("year1", "T3");
test.addElement("month1", "T4");
test.addElement("date1", "T5");
test.addElement("Need_Class", "T7");
test.output();
}
}

你可以把它當成一個 bean,jsp 去呼叫即可,不用寫在 jsp 裡面
作者 : fanny(FANNY)
[ 貼文 115 | 人氣 6585 | 評價 60 | 評價/貼文 0.52 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/12/15 下午 02:15:38
法蘭克先生!!首先非常感謝你~回答我的問題!!
可是我把下面的程式寫成一個bean 會出現一些問題!!
弄了很久還是弄不出來! 所以可不可以再請教你一下!!
前端的程式依舊是那樣!!讓使用者輸入
之後我把使用者輸入的寫成一個bean 了
就是下面這一段
    private string airname
到public String getChildsit() {
    return childsit;
  }
為止就是把前端的參數都傳給bean了
問題 一:

 因為要寫成一個bean的關係,所以一開始要寫
package javabean(我自己取的)...可是加上這一句之後
這個程式就compile 過了,但產生不出一個xml檔
錯誤訊息如下:

C:\j2sdk1.4.0\bin>java XMLOutputterTest test.xml
Exception in thread "main" java.lang.NoClassDefFoundError: XMLOutputterTest (wro
ng name: javabean/XMLOutputterTest)
        at java.lang.ClassLoader.defineClass0(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:509)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12
3)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:246)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:54)
        
問題二:最後一段程式:
"T1":這一部分我是要把前端變數的內容用Star_Add的標籤來包
所以不是用字串的方式,可是改成變數的話
test.addElement("Start_Add", "T1");
test.addElement("End_Add", "T2");
我改成
test.addElement("Start_Add", airname);
airname前面程式中有定義

test.addElement("Start_Add",setAirname(String new1)  );
都不成功,那到底我要如何我前端參數的内容寫到這裡呢??
還有如果你不懂我的意思的話那可不可以請你留下您的e-mail
我把三個檔案寄給您!run一次,您就了解我的意思了
謝謝
完整程式碼如下
package javabean;
import java.io.*;
import java.util.*;
import org.jdom.*;
import org.jdom.output.XMLOutputter;

public class XMLOutputterTest{

  private String airname;
  private String departure;
  private String arrival;
  private String trip;
  private String year1;
  private String month1;
  private String date1;
  private String year3;
  private String month2;
  private String date2;
  private String needclass;
  private String adultsit;
  private String childsit;

  public void setAirname(String new1) {
    airname = new1;
  }
  public void setDeparture(String new2) {
    departure = new2;
  }
  public void setArrival(String new3) {
    arrival = new3;
  }
作者 : fanny(FANNY)
[ 貼文 115 | 人氣 6585 | 評價 60 | 評價/貼文 0.52 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/12/15 下午 02:16:40
public void setTrip(String new4) {
    trip = new4;
  }
  public void setYear1(String new5) {
    year1 = new5;
  }
  public void setMonth1(String new6) {
    month1 = new6;
  }
  public void setDate1(String new7) {
    date1 = new7;
  }
  public void setYear3(String new8) {
    year3 = new8;
  }
  public void setMonth2(String new9) {
    month2 = new9;
  }
  public void setDate2(String new10) {
    date2= new10;
  }
    public void setNeedclass(String new11) {
    needclass = new11;
  }
  public void setAdultsit(String new12) {
    adultsit = new12;
  }
  public void setChildsit(String new13) {
    childsit = new13;
  }
public String getAirname() {
    return airname;
  }
  public String getDeparture() {
    return departure;
  }

  public String getArrival() {
    return arrival;
  }
  public String getTrip() {
    return trip;
  }
 
  public String getYear1() {
    return year1;
  }
  public String getMonth1() {
    return month1;
  }
  public String getDate1() {
    return date1;
  }
  public String getYear3() {
    return year3;
  }

  public String getMonth2() {
    return month2;
  }
  public String getDate2() {
    return date2;
  }

  public String getNeedclass() {
    return needclass;
  }
  public String getAdultsit() {
    return adultsit;
  }

  public String getChildsit() {
    return childsit;
  }
作者 : fanny(FANNY)
[ 貼文 115 | 人氣 6585 | 評價 60 | 評價/貼文 0.52 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/12/15 下午 02:17:45
//--------------------------------------------------------
// Object Attribute
//--------------------------------------------------------
private ArrayList  _list;
private Element   _root;
private File _file;
private FileWriter   _writer;
private BufferedWriter _buffer;
//--------------------------------------------------------
// Constructor
//--------------------------------------------------------
public XMLOutputterTest(String root) {
_list = new ArrayList();
_root = new Element(root);
}
public XMLOutputterTest(String root, String filename) {
this(root); 
_file = new File(filename);
}
//--------------------------------------------------------
// Object Operator
//-------------------------------------------------------- 
public void setFile(String filename) {
_file = new File(filename); 
}
public void addElement(String ele) {
Element element = new Element(ele); 
_list.add(element);
}
public void addElement(String ele, String text) {
Element element = new Element(ele); 
element.setText(text);
_list.add(element);
}
public void output() {
Iterator iterator = _list.iterator();
while(iterator.hasNext()) {
_root.addContent((Element)iterator.next()); 
}
try {
XMLOutputter outputter = new XMLOutputter(); 
_file = (_file!=null) ? _file : new File("test.xml");
_writer = new FileWriter(_file);
_buffer = new BufferedWriter(_writer);
Document doc = new Document(_root);
outputter.setIndent(true);
         outputter.output(doc, _buffer);
}
catch (Exception e) {
e.printStackTrace();
}
finally {
try {
if (_buffer != null) _buffer.close();
if (_writer != null) _writer.close();
}
catch(Exception e) {} 
}
}
 

作者 : fanny(FANNY)
[ 貼文 115 | 人氣 6585 | 評價 60 | 評價/貼文 0.52 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/12/15 下午 02:18:01
public static void main(String[] args) throws Exception {
//XMLOutputterTest test = new XMLOutputterTest("Order_Air");
XMLOutputterTest test = new XMLOutputterTest("Order_Air", "testOutput.xml");
test.addElement("Start_Add", "T1");
test.addElement("End_Add", "T2");
test.addElement("Date_Time", "T3");
test.addElement("year1", "trip");
test.addElement("month1", "year1");
test.addElement("date1", "month1");
test.addElement("Need_Class", "date1");
test.output();
}

}








 



作者 : safe(法蘭克) 貼文超過200則
[ 貼文 336 | 人氣 374 | 評價 80 | 評價/貼文 0.24 | 送出評價 5 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/12/18 上午 09:43:15
寄給我吧
safe@ms55.url.com.tw
作者 : monhan(辣手摧花)
[ 貼文 26 | 人氣 2140 | 評價 0 | 評價/貼文 0 | 送出評價 2 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/12/28 上午 12:01:10
加油...FANNY

辛苦你了!...法蘭克!!....
 板主 : popolom
 > J2EE/Servlet/JSP - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - J2EE/Servlet/JSP - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
J2EE/Servlet/JSP
1 Aries 640 
2 popolom 500 
3 DEMO999 280 
4 殭屍 270 
5 瑋瑋 230 
6 阿誌 130 
7 藍色小惡魔 120 
8 120 
9 竹子 90 
10 fish 90 
J2EE/Servlet/JSP
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2014 程式設計俱樂部 http://www.programmer-club.com.tw/
0.109375