⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xml.java

📁 完整JAVA读写ORACLE中XML字段的代码
💻 JAVA
字号:
   /**
     * 取XMLType属性,使用前必须先连接,使用完毕后关闭连接
     * @param field String 要查找的字段
     * @param table String 要查找的表
     * @param str String[] 要查找的字段属性,层数必须相同
     * @param i int 第几个元素的值,i=0表示取所有元素
     * @param seq String 主关键值的值 ,例:seq=63920
     * @return String[][] 返回String[][str.length]
     * @throws Exception
     */
    public String[][] getXMLTag(String field,String table,String str[],int i,String seq) throws Exception
    {
       String[][] result=null;
      try
      {
          String sql="select t."+field+" from "+table+" t where "+seq;
          NodeList n1=null;
          OracleResultSet rst=(OracleResultSet)query_stmt.executeQuery(sql);
          while(rst.next())
          {
              XMLType pxml=XMLType.createXML(rst.getOPAQUE(1));
              DOMParser parser=new DOMParser();
              parser.setPreserveWhitespace(true);
              parser.parse(new StringReader(pxml.getStringVal()));
              XMLDocument doc=parser.getDocument();
              for(int j=0;j<str.length;j++)
              {
                  //查找节点数据
                  n1 = doc.getElementsByTagName(str[j]);

                  if(i>0)
                  {
                     if(result==null)
                      result=new String[1][str.length];
                      result[0][j]=n1.item(i-1).getFirstChild().getNodeValue().trim();
                   }
                  else
                  {
                      if(result==null)
                         result=new String[n1.getLength()][str.length];
                      for (int k = 0; k < n1.getLength(); k++)
                      {
                          result[k][j]=n1.item(k).getFirstChild().getNodeValue().trim();
                       }
                  }
              }
          }
      }
      catch (Exception e)
      {
        throw e;
      }
      finally
      {
          return result;
      }
  }

  /**
       * 取XMLType属性,使用前必须先连接,使用完毕后关闭连接
       * @param field String 要查找的字段
       * @param table String 要查找的表
       * @param str String[] 要查找的字段属性
       * @param seq String 主关键值的值 ,例:seq=63920
       * @return Vector 返回vector长度为str.length,内容为String[]
       * @throws Exception
       */
      public Vector getXMLTag(String field,String table,String str[],String seq) throws Exception
      {
        Vector v=new Vector(str.length);
        try
        {
            String sql="select t."+field+" from "+table+" t where "+seq;
            NodeList n1=null;
            OracleResultSet rst=(OracleResultSet)query_stmt.executeQuery(sql);
            while(rst.next())
            {
                XMLType pxml=XMLType.createXML(rst.getOPAQUE(1));
                DOMParser parser=new DOMParser();
                parser.setPreserveWhitespace(true);
//                pxml.getBytesValue()

               // parser.parse(new StringReader(pxml.getStringVal()));
             sql="<?xml version=\"1.0\" encoding=\"gb2312\"?>"+pxml.getStringVal();

               parser.parse(new StringReader(sql));
                XMLDocument doc=parser.getDocument();
                for(int j=0;j<str.length;j++)
                {
                    //查找节点数据
                    n1 = doc.getElementsByTagName(str[j]);

                  try
                  {
                      String[] result = new String[n1.getLength()];
                      for (int k = 0; k < n1.getLength(); k++) {
                          result[k] = n1.item(k).getFirstChild().getNodeValue().trim();
                      }
                      v.add(result);
                  }
                  catch(Exception e2)
                  {
                      v.add(new String[0]);
                  }


                 }
               }
             }
        catch (Exception e)
        {
          throw e;
        }
        finally
        {
            return v;
        }
    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -