<?xml version="1.0" encoding="GBK"?>
<result><point-test><USER_NO>00001</USER_NO><CLD_NO>0</CLD_NO><DATE>2007-04-03 18:00:40.533</DATE><PZ>5.20</PZ><PA>5.20</PA><PB>5.20</PB><PC>5.20</PC><QZ>5.20</QZ><QA>5.20</QA><QB>5.20</QB><QC>5.20</QC><FLAG>1</FLAG></point-test></result>
我想读出这个串里子节点的值,直接读串.不要在把这个串写入一个文件,然后用再用其他的方式读,就想直接分解这个串.读出以下的内容
00001,0,2007-04-03 18:00:40.533,5.20.....

解决方案 »

  1.   

    也就是说上面的那个不是 XML 文件,而是字符串啰?
      

  2.   

    用SAX,DOM,JDOM中的任何一种都可以解析上面的内容得到这些值
      

  3.   

    依次对每一个<...>查找与之最近的下一个<....>,他俩之间的数据就是要读取的。不知道行不行
      

  4.   

    你可以将从这个String中变成XML对象啊
    String xml = ...;
    Document doc = javax.xml.parsers.DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new InputSource(new StringReader(xml)));
      

  5.   

    用fileinputstream读进来 
       然后每个字符串去匹配一下
        这样做很麻烦
      

  6.   

    使用字符串替换,我写了一个,源串存在文件中的。解析后,每行是一个 point-test 的记录,记录字段间使用“,”分隔。import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.FileReader;public class Test2 {

      public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new FileReader("data.xml"));
        StringBuffer sb = new StringBuffer();
        String s = "";
        while((s=br.readLine())!=null) {
          if(s.trim().length()>0) {
            sb.append(s.trim());
          }
        }
        s = sb.toString().trim();
        s = s.replace(System.getProperty("line.separator"), "");
        s = s.replace("<?xml version=\"1.0\" encoding=\"GBK\"?>", "");
        s = s.replace("</result>", "");
        s = s.replace("</FLAG></point-test>", System.getProperty("line.separator")); 
        s = s.replaceAll("<[a-z_A-Z\\-]*>", "");
        s = s.replaceAll("</[a-z_A-Z\\-]*>", ", ");
        s = s.trim();
        System.out.println(s);
      }
    }
      

  7.   

    Hibernate有封装好的包,直接拿来用就行了