你开始的时候是什么xml .是xml 的话直接解析xml

解决方案 »

  1.   

    返回的时候就是这种样式:
    ---------------------------
    来自网页的消息
    ---------------------------
    <事件 事件类型='2048' 消息值='3' 对象ID='0' 参数1='0' 参数2='0'><标绘消息 plottype="贴地面标绘" msgtype="标绘结束">
        <结束类型 type="完成" />
        <控制点 num="8">
            <Pt3dLLA lon="107.7446494565" lat="37.45078285974" alt="28132.07" />
            <Pt3dLLA lon="107.8470409767" lat="37.4706619983" alt="23114.81" />
            <Pt3dLLA lon="107.8699098078" lat="37.44097370465" alt="28502.55" />
            <Pt3dLLA lon="107.8688466847" lat="37.41326924299" alt="24139.26" />
            <Pt3dLLA lon="107.7968216671" lat="37.3697228282" alt="1700.445" />
            <Pt3dLLA lon="107.7632774887" lat="37.40827770853" alt="27760.18" />
            <Pt3dLLA lon="107.7492233503" lat="37.42311615045" alt="31563.41" />
            <Pt3dLLA lon="107.7440959916" lat="37.43555113232" alt="32279.34" />
        </控制点>
    </标绘消息>
    </事件>
    ---------------------------
    确定   
    ---------------------------
    我要把返回的结果截取成我要的样式。
      

  2.   

    我日常用的类,正则还是有一些问题。
    不过解析你这个应该没问题。把要解析的字符串复制到文本reg.txt里面了
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;public class CopyOfGetProperty {


    public void service(){

    BufferedReader br = new BufferedReader(new InputStreamReader(getInputStream("reg.txt")));
    String nextLine = "";

    try {
    while( (nextLine=br.readLine())!=null ){

    if(!getExportString(nextLine).equals("")){
    System.out.println(getExportString(nextLine));
    }

    }
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }

    }


    private String getExportString(String nextLine){
    String lon = getMatchString(nextLine,"Pt3dLLA","lon");
    String lat = getMatchString(nextLine,"Pt3dLLA","lat");
    String alt = getMatchString(nextLine,"Pt3dLLA","alt");

    if(lon.equals("") && lat.equals("") && alt.equals("")){
    /*
     * 如果name和title不存在则返回空字符串
     */
    return "";
    }
    StringBuffer buffer = new StringBuffer("");
    buffer.append(lon);
    buffer.append(",");
    buffer.append(lat);
    buffer.append(",");
    buffer.append(alt);
    return buffer.toString();
    }

    private String getMatchString(String nextLine,String tag,String attr){

    String match = "";

    // String reg = "<" + tag + "[^<>]*?\\s" + attr + "=['\"]?(.*?)['\"]?\\s.*?>"; 
    String reg = "<" + tag + "[^<>]*?\\s" + attr + "=['\"]{1}(.*?)['\"]{1}.*>"; 
    Matcher m = Pattern.compile(reg).matcher(nextLine);

    if(m.find()){
    match = m.group(1);
    }

    return match;
    }

    private InputStream getInputStream(String name){
    InputStream is = ClassLoader.getSystemResourceAsStream(name);
    return is;
    }

    public static void main(String[] args) {

    CopyOfGetProperty demo = new CopyOfGetProperty();
    demo.service(); }

    }
      

  3.   

    var x='<事件 事件类型=\'2048\' 消息值=\'3\' 对象ID=\'0\' 参数1=\'0\' 参数2=\'0\'><标绘消息 plottype="贴地面标绘" msgtype="标绘结束">';
     x+='<结束类型 type="完成" />';
     x+='<控制点 num="8">';
     x+='<Pt3dLLA lon="107.7446494565" lat="37.45078285974" alt="28132.07" />';
     x+='<Pt3dLLA lon="107.8470409767" lat="37.4706619983" alt="23114.81" />';
     x+='<Pt3dLLA lon="107.8699098078" lat="37.44097370465" alt="28502.55" />';
     x+='<Pt3dLLA lon="107.8688466847" lat="37.41326924299" alt="24139.26" />';
     x+='<Pt3dLLA lon="107.7968216671" lat="37.3697228282" alt="1700.445" />';
     x+='<Pt3dLLA lon="107.7632774887" lat="37.40827770853" alt="27760.18" />';
     x+='<Pt3dLLA lon="107.7492233503" lat="37.42311615045" alt="31563.41" />';
     x+='<Pt3dLLA lon="107.7440959916" lat="37.43555113232" alt="32279.34" />';
     x+='</控制点>';
     x+='</标绘消息>';
     x+='</事件>';
    (x).replace(/lon="(.*?)"\slat="(.*?)"\salt="(.*?)"/ig,function($0,$1,$2,$3){
    document.write($1+","+$2+","+$3+";"+"\n")
       
    });
      

  4.   

    用正则表达式可以做到package Test;import java.util.ArrayList;
    import java.util.List;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;public class Test {
    static List<String> lsLon = new ArrayList<String>();
    static List<String> lsLat = new ArrayList<String>();
    static List<String> lsAlt = new ArrayList<String>(); private static List<String> regExList(String s, String regEx,
    List<String> ls) {
    Pattern pat = Pattern.compile(regEx);
    Matcher mat = pat.matcher(s);
    while (mat.find()) {
    String str = mat.group();
    ls.add(str.substring(5, str.length()));
    }
    return ls;
    } public static void main(String[] args) {
    String s = "\"<事件 事件类型='2048' 消息值='3' 对象ID='0' 参数1='0' 参数2='0'><标绘消息 plottype=\"贴地面标绘\" msgtype=\"标绘结束\">"
    + "<结束类型 type=\"完成\" />"
    + " <控制点 num=\"8\">"
    + "<Pt3dLLA lon=\"107.7446494565\" lat=\"37.45078285974\" alt=\"28132.07\" />"
    + "<Pt3dLLA lon=\"107.8470409767\" lat=\"37.4706619983\" alt=\"23114.81\" />"
    + "<Pt3dLLA lon=\"107.8699098078\" lat=\"37.44097370465\" alt=\"28502.55\" />"
    + "<Pt3dLLA lon=\"107.8688466847\" lat=\"37.41326924299\" alt=\"24139.26\" />"
    + "<Pt3dLLA lon=\"107.7968216671\" lat=\"37.3697228282\" alt=\"1700.445\" />"
    + "<Pt3dLLA lon=\"107.7632774887\" lat=\"37.40827770853\" alt=\"27760.18\" />"
    + "<Pt3dLLA lon=\"107.7492233503\" lat=\"37.42311615045\" alt=\"31563.41\" />"
    + "<Pt3dLLA lon=\"107.7440959916\" lat=\"37.43555113232\" alt=\"32279.34\" />"
    + " </控制点>" + "</标绘消息>"; String regLon = "lon=\"\\d*.\\d*";
    regExList(s, regLon, lsLon);
    String regLat = "lat=\"\\d*.\\d*";
    regExList(s, regLat, lsLat);
    String regAlt = "alt=\"\\d*.\\d*";
    regExList(s, regAlt, lsAlt); for (int i = 0; i < lsLon.size(); i++) {
    System.out.println(lsLon.get(i) + "," + lsLat.get(i) + "," + lsAlt.get(i) + ";");
    }
    }
    }
      

  5.   

    对JavaScript , 你那个数据不是来自网页信息吗/