目的:Jsoup.parse解析htm文件,获取td标签中的文本信息,排除掉文本值为’’,或者为空的数据
过程中发现一个问题:td标签中的文本信息是 在后台拿到的时候显示的效果和空格’ '字符串长的一样,导致这个信息没有成功过滤掉。
写了个栗子进行查看分析:
public static void main(String[] args) {
String filePathString = "C:\\Users\\qishao\\Desktop\\新建文件夹\\sub_caiyongfengxianjiazhifaguanlifengxian\\sub_caiyongfengxianjiazhifaguanlifengxian.htm";
File file = new File(filePathString);
try {
Document doc = Jsoup.parse(file, "UTF-8");
Elements tableEles = doc.select("table");// 每表的标签
for (Element tableElement : tableEles) {
Elements trEles = tableElement.select("tr");// 每行的标签
for (Element trElement : trEles) {
Elements tdEles = trElement.select("td");// 每列的标签
for (int i = 0; i < tdEles.size(); i++) {
Element tdElement1 = tdEles.get(i);
String txt = tdElement1.text(); // 这列的值
System.out.println(txt);
System.out.println(txt.length());
System.out.println(" ".equals(txt));// 上图拿到的数据并不等于" "
///可以通过编码反编码进行替换,发现原来这个值为%C2%A0
String data = URLEncoder.encode(txt);
System.out.println(data);// %C2%A0
data = data.replaceAll("%C2%A0", "%20");
System.out.println(data);// %20
data = URLDecoder.decode(data);
System.out.println(data);// ''
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
可以通过编码反编码进行替换,发现原来这个值为%C2%A0,最后通过替换将这个 去掉了。