<?xml version="1.0" encoding="UTF-8"?> 
<user>
<name>张三</name>
<age>20</age>
<sex>男</sex>
<address>江苏省南京市鼓楼区</address>
</user>比如上面是xml文件内容,我现在要把这些内容存入数据库中。
(是存入某个表的某个字段)
数据库中的表
id | content把上面xml的内容存入content这个字段最终我可以读取这条记录的content,然后解析xml展示(可能是表格的形式展现给用户看)。大家有没有好的方法?谢谢

解决方案 »

  1.   

    你把content的内容以xml形式返回到客户端,在客户端解析xml
      

  2.   

    先解析XML,然后将解析的下来的字段形成以String 然后存进去啊
      

  3.   

    你就直接把xml文件当字符串存到数据里就是了,过长的话,content字段需要用clob,只是要记得取出来的时候不能只用rs.getString(),要用流的方式读出来。
    展示的时候直接用xml解析器就能解析的。
    另外还要注意,如果你的xml文件里有特殊字符要转义,用<![CDATA[]]>,不然xml解析的时候会出问题
      

  4.   

    这是我的思路
    //得到DOM解析器的工厂实例
    DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
    try {
    //从DOM工厂得到DOM解析器
    DocumentBuilder db=dbf.newDocumentBuilder();
    //解析XML文档,得到一个Document,即dom树
    Document dot=db.parse("NewXml.xml");
    //得到多有<user>节点的信息
    NodeList stuList =dot.getElementsByTagName("user");
    String value="";
    for (int i = 0; i <stuList.getLength(); i++) {
    Node stu=stuList.item(i);
    for (Node node=stu.getFirstChild();node!=null;node=node.getNextSibling()) {
    if (node.getNodeType()==Node.ELEMENT_NODE) {
    //将每个节点读取到得值拼成一个字符串,然后存到数据库去
    value=value+node.getFirstChild().getNodeValue()+",";
    }
    }
    }
    System.out.println(value);
    } catch (SAXException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    } catch (ParserConfigurationException e) {
    e.printStackTrace();
    }