用正则表达式来解析这个字符串,看看java.util.regex包的文档

解决方案 »

  1.   

    直接用String方法解析,也不是很麻烦啊。
      

  2.   


      用XML解析最简单的了,为什么麻烦呢?愿听其详!
      

  3.   

    谢谢各位的意见,to  flyxxxxx(灭神) & interhanchi(艰难困苦,玉汝于成!) :如果用正则表达式来做的话,哪位能把这个表达式写出来啊,在下对正则了解颇少,因此哪位ok,就劳烦一下了!
      

  4.   

    如果用正则的话,出现这种情况怎么办,那正则岂不是要写很 长!而且这种情况有很多!<Record>
      <Item Name="Customer_Code">30916156</Item>
      <Item Name="Customer_Name">京洛有限公司</Item>
      <Item Name="Sign_Area_Name">1000</Item>
      <Item Name="Customer_Admin_Name">潘玉芳</Item>
      <Item Name="Customer_State">  </Item>
                     .
                     .
                     .
                     n(n=100)</Record>有没有更好的解决办法呢??
      

  5.   

    另问:   哪位知道在java中怎么实现 字符串类型 到 文件类型的转换呢??也就是说我可以将String类型的xml显示出来,但是,用dom或sax只能解析xml文件,因此,怎么才能将与xml格式相同的String转变成 文件类型xml成为关键!谢谢!如:下面不是文件,而是String,我怎么才能把它转换成xml文件,然后用dom或sax解析呢?
    <?xml version="1.0""UTF-8"?>
    <root>
    <Record>
    <Item Name="Product_Code">1011</Item>
    <Item Name="Product_Name">AC-DC 集总成品</Item>
    </Record>
    </root>
      

  6.   

    沙发 还是转换成xml的方法有通用性
      

  7.   

    用dom4j 
    SAXReader reader=new SAXReader();
    Document document=reader.read(String arg0);
    可以将string转换成Document对象的,然后你操作Document很方便的
      

  8.   

    不知道是不是可以创建一个类,负责把String序列化成.xml的文件,没有试过呵呵,不过我想序列化应该是可以转换成任何文件的呀.
      

  9.   

    楼上的,SAXReader.read(String)好象还是去读文件的吧,String参数不是楼主要解析的内容啊.
      

  10.   

    dom4j, 可以直接解析xml字符串,不用存成文件,xml头部可以自己加上去
      

  11.   

    jdom好像可以直接解析字符串,不需要从文件里读
      

  12.   

    关注呵呵,直接写成xml文件吧~~
      

  13.   

    解析很麻烦 有不愿意存成xml
    那就把string在运行的时候生成一个xml文件供调用
    解析结束后删掉好吧
      

  14.   

    转换成InputStream,再处理试试
      

  15.   

    谢谢大家的积极讨论:to justinchen() : 这个建议不错,可以试一下!如果我可以解析xml文件,那么xml文件中中文汉字的转换问题,有没有哪些要注意的地方!!因为我解析出来后,不能解析中文!
      

  16.   

    大家好,开始的问题解决了,把部分code拿出来给大家共享一下,共享的code并不代表最优的,哪位朋友想研究可以继续优化:
    // 前部分代码省略...
          //可以用dom来解析流文件,的确省去了不少力气,:)
          //String 类型转换成InputStream类型,allXml代表上文类似xml文件的字符串,这里的allXml已经是标准的xml形式,不过是自己拼出来的.
          StringBufferInputStream buf = new StringBufferInputStream(allXml);
          InputStream input = (StringBufferInputStream)buf;
          //打印xml字符串
          System.out.println(allXml);      //create工厂实例并转换成document实例
          DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
          DocumentBuilder parser = factory.newDocumentBuilder();
          //解析流文件
          Document doc = parser.parse(input);
          Element _element = doc.getDocumentElement();
          //存储<item>值list
          ArrayList valueList = new ArrayList();
          //存储<record>list,也就是记录数
          ArrayList recordList = new ArrayList();
          //得到标签<record>list
          NodeList rlist=_element.getElementsByTagName("Record");
          //得到每个<record>的<Item>值
          for(int j=0;j<rlist.getLength();j++){
          Element _el = (Element)rlist.item(j);
          NodeList nlist=_el.getElementsByTagName("Item");
          int length = nlist.getLength();
            for (int i = 0; i < length; i++) {
              String nodeValue = nlist.item(i).getFirstChild().getNodeValue();
              //将<Item>值存储到valueList中
              valueList.add(i,nodeValue);
              System.out.println(nodeValue);
            }
            //将<record>记录存储到recordList中
            recordList.add(valueList);
          }
    该方法能解决我的问题,但是不知道有没有更好的方法,若哪位朋友知道,请不要吝啬啊!:)不过,目前本人不知道如何解析 含有中文的xml文件,哪位大虾知道,请指导一下在下,不胜感谢!