xml

public class ParseXML {
    public static void main(String[] args) {
        try {
            DocumentBuilderFactory factory = DocumentBuilderFactory
                    .newInstance();
            DocumentBuilder builder = factory.newDocumentBuilder();
            File file = new File("d:/table/AFFICHE.xml");
            // 创建
            Document document = builder.parse(file);
            FileWriter fw = new FileWriter("d:/23.txt");
           
           

            // 从数据库提取
            // String xmlstr= "<beans><name>liu</name><pass>123</pass></beans>";
            // builder.parse(new ByteArrayInputStream(str.getBytes()));

            // save to mysql
//            StringWriter output = new StringWriter();
//            TransformerFactory.newInstance().newTransformer().transform(
//                    new DOMSource(document), new StreamResult(output));
            //System.out.println(output.toString());

            // 对内展现
            XPathFactory factoryXpah = XPathFactory.newInstance();
            XPath xpath = factoryXpah.newXPath();
            XPathExpression expr = xpath.compile("//RECORD");
            StringBuffer sql = new StringBuffer();
            NodeList node = (NodeList)expr.evaluate(document,XPathConstants.NODESET);
                      for(int i=0;i<node.getLength();i++){
                       Node n = node.item(i);
                       NodeList ns = n.getChildNodes();
                  
                       sql.append("insert into ");
                       sql.append(file.getName().substring(0,file.getName().lastIndexOf(".")));
                       sql.append(" values(");
                       for(int j =1;j<ns.getLength();j+=2){
                          sql.append("'");
                          String name = ns.item(j).getNodeName();
                          if(name.indexOf("DATE")==-1){
                              sql.append(ns.item(j).getTextContent().replaceAll("(//s+|//t+)", ""));
                          }else{
                              sql.append(ns.item(j).getTextContent().substring(0,ns.item(j).getTextContent().length()-7));
                          }
                          //sql.append(ns.item(j).getTextContent().replaceAll("(//s+|//t+)", ""));
                          if(j<(ns.getLength()+1)/2)
                          sql.append("',");
                       }
                       sql.append(")");
                       sql.append(";");
                   }
                      fw.write(sql.toString());
                      fw.close();
           
           
          
         
         
            //System.out.println(expr.evaluate(document));

            // 对jsp jstl xml
            // 参考 http://www.java2s.com/Code/Java/JSP/XML.htm

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值