当前位置: 代码迷 >> J2ME >> 截取字符串,该怎么处理
  详细解决方案

截取字符串,该怎么处理

热度:3952   发布时间:2013-02-25 21:30:25.0
截取字符串
在xml中如何把114.018909和23.209072截取字符出来,并且这两个值的长度是不确定的。急


<?xml version="1.0" encoding="UTF-8"?>
<MADASMessage>
<Row><Data>00</Data></Row>
<Row>
<Data>MNC</Data>
<Data>LAC</Data>
<Data>CID</Data>
<Data>LNG</Data>
<Data>LAT</Data>
<Data>ADDR</Data>
</Row>
<Row>
<Data>0</Data>
<Data>10057</Data>
<Data>8602</Data>
<Data>114.018909</Data>
<Data>23.209072</Data>
<Data>广东省惠州市的G324附近,新禾村附近</Data>
</Row>
</MADASMessage>循环结束后:
String s1 = lst.get(1);
String s2 = lst.get(2);试试这个吧,只能截取带<data>节点中是小数的:
        String xml = "<Row><Data>0</Data><Data>10057</Data><Data>8602</Data>\n<Data>114.018909</Data>\n<Data>23.209072</Data>\n<Data>广东省惠州市的G324附近,新禾村附近</Data></Row>";
        Pattern pattern = Pattern.compile("<data>(\\d*\\.\\d*)</data>", Pattern.CASE_INSENSITIVE);
        Matcher matcher = pattern.matcher(xml);

        ArrayList<String> lst = new ArrayList<String>();
        while (matcher.find()) {
            lst.add(matcher.group(1));
        }
        System.out.println(lst);


或者你可以用:
  Pattern pattern = Pattern.compile("<data>([^>]*)</data>", Pattern.CASE_INSENSITIVE);
把所有<data>都截取出来,然后再另外按需过滤。


org.dom4j.io.SAXReader reader = new org.dom4j.io.SAXReader();
doc = reader.read(new File("conf/you.cfg.xml"));
Element root = doc.getRootElement();
List dbs = root.elements();

if (dbs.size() > 0) {
Element elm = (Element) dbs.get(0);
String name = elm.getName();
initConnProp(elm);
}
  相关解决方案