2010-07-09 52 views
1

我们使用servlet从MySQL数据库中提取数据。我们希望以XML格式回顾这些数据。xml使用servlet解析问题

我们已经成功地获得了一个html页面,但现在的问题是我们只能从第一行的表中获取所有列的值。

我们如何检索表中的所有行?

这里是我们当前的代码:

while(rs.next()) 
{ 
    Element root = doc.createElement("BSE"); 
    System.out.println(doc.appendChild(root)); 

    Element child = doc.createElement("Market_Watch"); 
    root.appendChild(child); 

    Element child1 = doc.createElement("Stock_Code"); 
    child.appendChild(child1); 

    Text text1 = doc.createTextNode(rs.getString("Stock_Code")); 
    child1.appendChild(text1); 

    Element child2 = doc.createElement("Stock_Name"); 
    child.appendChild(child2); 

    Text text2 = doc.createTextNode(rs.getString("Stock_Name")); 
    child2.appendChild(text2); 

    Element child3 = doc.createElement("Open_Rate"); 
    child.appendChild(child3); 

    Text text3 = doc.createTextNode(rs.getString("Open_Rate")); 
    child3.appendChild(text3); 

    TransformerFactory factory = TransformerFactory.newInstance(); 
    Transformer transformer = factory.newTransformer(); 

    transformer.setOutputProperty(OutputKeys.INDENT, "yes"); 

    StringWriter sw = new StringWriter(); 
    StreamResult result = new StreamResult(sw); 
    DOMSource source = new DOMSource(doc); 
    transformer.transform(source, result); 
    String xmlString = sw.toString(); 

    File file = new File("c:/newxm94.xml"); 
    BufferedWriter bw = new BufferedWriter 
        (new OutputStreamWriter(new FileOutputStream(file))); 
    bw.write(xmlString); 
    bw.flush(); 
    bw.close(); 
} 
+0

你有一个servlet并写入到c:/newxm94.xml?这看起来不正确。您是否复制粘贴正确的摘要? – Redlab 2010-07-09 07:02:22

+0

而不是你只是覆盖每个循环的文件?你不应该在开始循环之前打开它,然后关闭它,或者打开它来追加。 – Redlab 2010-07-09 07:09:28

回答

3

你写了每次通过循环迭代过的文件。你需要移动一些东西到你的循环之外:

Element root = doc.createElement("BSE"); 
System.out.println(doc.appendChild(root)); 

while(rs.next()) 
{ 
    Element child = doc.createElement("Market_Watch"); 
    root.appendChild(child); 

    Element child1 = doc.createElement("Stock_Code"); 
    child.appendChild(child1); 

    Text text1 = doc.createTextNode(rs.getString("Stock_Code")); 
    child1.appendChild(text1); 

    Element child2 = doc.createElement("Stock_Name"); 
    child.appendChild(child2); 

    Text text2 = doc.createTextNode(rs.getString("Stock_Name")); 
    child2.appendChild(text2); 

    Element child3 = doc.createElement("Open_Rate"); 
    child.appendChild(child3); 

    Text text3 = doc.createTextNode(rs.getString("Open_Rate")); 
    child3.appendChild(text3); 
} 

TransformerFactory factory = TransformerFactory.newInstance(); 
Transformer transformer = factory.newTransformer(); 

transformer.setOutputProperty(OutputKeys.INDENT, "yes"); 

StringWriter sw = new StringWriter(); 
StreamResult result = new StreamResult(sw); 
DOMSource source = new DOMSource(doc); 
transformer.transform(source, result); 
String xmlString = sw.toString(); 

File file = new File("c:/newxm94.xml"); 
BufferedWriter bw = new BufferedWriter 
       (new OutputStreamWriter(new FileOutputStream(file))); 
bw.write(xmlString); 
bw.flush(); 
bw.close();