新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     >>计算机科学论坛<<     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> XML网站展示,XML源代码,XML编程示例。 本版仅接受原创、转贴、网站展示,具体的技术交流请前往各相关版块。
    [返回] 计算机科学论坛XML.ORG.CN讨论区 - XML技术『 XML源码及示例(仅原创和转载) 』 → 在jbuilder环境下把xml文档导入导出oracle 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 2226 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 在jbuilder环境下把xml文档导入导出oracle 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     sophieflying 美女呀,离线,快来找我吧!射手座1981-12-21
      
      
      等级:大一新生
      文章:3
      积分:69
      门派:XML.ORG.CN
      注册:2004/3/21

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给sophieflying发送一个短消息 把sophieflying加入好友 查看sophieflying的个人资料 搜索sophieflying在『 XML源码及示例(仅原创和转载) 』的所有贴子 引用回复这个贴子 回复这个贴子 查看sophieflying的博客楼主
    发贴心情 在jbuilder环境下把xml文档导入导出oracle

    毕业设计的题目是在在jbuilder环境下把xml文档导入导出oracle。导出可用jbuilder的xbean组件,很简单。但是导入呢?
    目前的想法是用saxparser解析文档,最后来insert into table values""""""...但value值如何从串行改为并行呢?别告诉我用字符串。因为哪几个函数都是void型。
    从网上查到得例子都是只有解析部分,没有操纵value的代码。

    逼得不行了。望高手们拯救小妹于水火啊,帮我改改下面的程序。不然有代码或范例也好阿。


    解析程序,部分自动生成,部分修改
    package com.borland.samples.xml.saxparser;

    import java.io.IOException;
    import org.xml.sax.*;
    import org.xml.sax.helpers.*;
    import javax.xml.parsers.*;

    public class MySaxParser extends DefaultHandler {

      private static int INDENT = 2;
      private static String attList = "" ;

      public static void main(String[] argv) {
        if (argv.length != 1) {
          System.out.println("Usage: java MySaxParser [URI]");
          System.exit(0);
        }
        System.setProperty("javax.xml.parsers.SAXParserFactory", "org.apache.xerces.jaxp.SAXParserFactoryImpl");
        String uri = argv[0];
        try {
          SAXParserFactory parserFactory = SAXParserFactory.newInstance();
          parserFactory.setValidating(false);
          parserFactory.setNamespaceAware(false);
          MySaxParser MySaxParserInstance = new MySaxParser();
          SAXParser parser = parserFactory.newSAXParser();
          parser.parse(uri, MySaxParserInstance);
        }
        catch(IOException ex) {
          ex.printStackTrace();
        }
        catch(SAXException ex) {
          ex.printStackTrace();
        }
        catch(ParserConfigurationException ex) {
          ex.printStackTrace();
        }
        catch(FactoryConfigurationError ex) {
          ex.printStackTrace();
        }
      }

      private int idx = 0;


    得到元素内容但是如何存起来呢
      public void characters(char[] ch, int start, int length) throws SAXException {
        String s = new String(ch, start, length);
        String T = new String(ch, start, length);
        if (!s.startsWith("\n"))
          System.out.println(getIndent()+ " Value: " + s);

      }

    我估计在这里加一个insert函数
      public void endDocument() throws SAXException {
        idx -= INDENT;
        System.out.println(getIndent() + "end document");
        System.out.println("...PARSING ends");
      }
      public void endElement(String uri, String localName, String qName)
          throws SAXException {
        if (!attList.equals(""))
          System.out.println(getIndent() + " Attributes: " + attList);
        attList = "";
        System.out.println(getIndent() + "end element");
        idx -= INDENT;
      }
      public void startDocument() throws SAXException {
        idx += INDENT;
        System.out.println("PARSING begins...");
        System.out.println(getIndent() + "start document: ");
      }
      public void startElement(String uri, String localName, String qName,
            Attributes attributes) throws SAXException {
        idx += INDENT;
        System.out.println('\n' + getIndent() + "start element: " + qName);
        if (attributes.getLength()> 0) {
          idx += INDENT;
          for (int i = 0; i < attributes.getLength(); i++){
            attList = attList + attributes.getQName(i) + " = " +
                attributes.getValue(i);
            if (i < (attributes.getLength() - 1))
              attList = attList + ", ";
          }
          idx -= INDENT;
        }
      }

      private String getIndent() {
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < idx; i++)
          sb.append(" ");
        return sb.toString();
      }
    }


    要导入得xml文档
    <?xml version="1.0"?>
    <XmlEmployees>
     <XmlEmployee>
      <EmpNo>2</EmpNo>
      <FirstName>Robert</FirstName>
      <LastName>Nelson</LastName>

     </XmlEmployee>

    </XmlEmployees>

    结果

    PARSING begins...

      start document:


        start element: XmlEmployees


          start element: XmlEmployee


            start element: EmpNo

             Value: 2

            end element


            start element: FirstName

             Value: Robert

            end element


            start element: LastName

             Value: Nelson

            end element

          end element

        end element

    end document

    ...PARSING ends


       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/4/19 12:58:00
     
     panq 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:0
      积分:54
      门派:XML.ORG.CN
      注册:2004/5/9

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给panq发送一个短消息 把panq加入好友 查看panq的个人资料 搜索panq在『 XML源码及示例(仅原创和转载) 』的所有贴子 引用回复这个贴子 回复这个贴子 查看panq的博客2
    发贴心情 
    oracle 有xmltype类型
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/5/9 16:50:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 XML源码及示例(仅原创和转载) 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2025/7/18 16:00:39

    本主题贴数2,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    62.500ms