java:使用字符串匹配器正则表达式生成xpath

java:使用字符串匹配器正则表达式生成xpath,java,regex,string,xpath,matcher,Java,Regex,String,Xpath,Matcher,我想从html文件生成xPath。到目前为止,我已经成功地将Html源代码存储在字符串中,并使用matcher regex生成基本xpath,如下所示:- String text = "<html><body><table><tr id=\"x\"><td>abc</td><td></td><td>xyz</td></tr></table><

我想从html文件生成xPath。到目前为止,我已经成功地将Html源代码存储在字符串中,并使用matcher regex生成基本xpath,如下所示:-

 String text   = "<html><body><table><tr id=\"x\"><td>abc</td><td></td><td>xyz</td></tr></table></body></html>";

//I want xpath till label "xyz"
         String unwanted= "xyz";  

//so splitting  and storing needed String 
        String[] neededString=text.split(unwanted);

        String a="";

//pattern for extracting tags
        String patternString1 = "<(.+?)>";

        Pattern pattern = Pattern.compile(patternString1);
        Matcher matcher = pattern.matcher(neededString[0]);

        while(matcher.find()) {

             a=a.concat(matcher.group(1)+"/");
        System.out.println(a);

    }
String text=“abcxyz”;
//我想要xpath标签“xyz”
String=“xyz”;
//所以需要拆分和存储字符串
String[]neededString=text.split(不需要);
字符串a=“”;
//用于提取标记的模式
字符串模式String1=“”;
Pattern=Pattern.compile(patternString1);
Matcher Matcher=pattern.Matcher(neededString[0]);
while(matcher.find()){
a=a.concat(匹配器组(1)+“/”;
系统输出打印项次(a);
}
此代码适用于没有多个子节点的基本标记结构,如
中的多个
。有谁能改进我上面的代码,使之包含多个孩子的xpath生成,以及捕获ID、类等属性

非常感谢您的帮助。
提前感谢。

正则表达式在提取Html内容时并不那么准确

使用Html解析器

public static void main(String[] args){
       String html = "<html><body><table><tr id=\"x\"><td>abc</td><td></td>" +
            "<td>xyz</td></tr></table></body></html>";

       Document doc = Jsoup.parse(html);

       for (Element table : doc.select("table")) {
             for (Element row : table.select("tr[id=x]")) {
                Elements tds = row.select("td)");
                System.out.println(tds.get(2).text());
             }
        }

      }
publicstaticvoidmain(字符串[]args){
字符串html=“abc”+
“xyz”;
Document doc=Jsoup.parse(html);
对于(元素表:单据选择(“表”)){
对于(元素行:table.select(“tr[id=x]”){
元素tds=行。选择(“td”);
System.out.println(tds.get(2.text());
}
}
}

为什么您认为使用正则表达式会对您有所帮助?使用适当的HTML解析器,使用正则表达式执行此操作是不可能的。