参考:

http://blog.csdn.net/qy20115549/article/details/53556928
<tr>
<td class='center'>
<font class='blue'>
北京
</font>
</td>
<td>
36175
</td>
<td>
2.03
</td>
</tr>
<tr>
<td class='center'>
<font class='blue'>
盐城
</font>
</td>
<td>
5466
</td>
<td>
-0.26
</td>
</tr>
package Jsoup;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException; import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements; public class Main {
public static void main(String[] args) throws IOException, IOException {
File file = new File("C:\\Users\\michael\\Desktop\\test.txt");
InputStreamReader read = new InputStreamReader(
new FileInputStream(file), "UTF-8");// 考虑到编码格式
BufferedReader bufferedReader = new BufferedReader(read);
String lineTxt = null;
String string = "";
while ((lineTxt = bufferedReader.readLine()) != null) {
// Syste.out.println(lineTxt);
string += lineTxt;
} Document document = Jsoup.parse(string);
Elements elements = document.select("tr");
for (Element ele : elements) {
String city = ele.select("td[class=center]").text();
int price = Integer.parseInt(ele.select("td").get(1).text());
double rose = Float.parseFloat(ele.select("td").get(2).text()) * 0.01;
System.out.println(city);
}
read.close();
}
}

问题分析

原来在解析html片段时,Jsoup自动将其补全为html。由于上面的形式是表格里面的一部分内容,所有需要补全。但Jsoup只会添加 信息,而且有可能会把一些信息删除。 
如下,为上面html片段,补充的后果。这对解析没有什么帮助。

<html>
<head></head>
<body>
<font class="blue">北京</font>361752.03
<font class="blue">盐城</font>5466-0.26
</body>
</html>

解决办法

将表格对应的标签补齐。

String cc="<html>  <body> <table> <tbody>"+html.replace("{\"data\":\"", "").replace("\"}", "")+"</tbody> </table> </body> </html>";
Document document=Jsoup.parse(cc);
Elements elements=document.select("tr");
System.out.println(document);
for (Element ele:elements) {
String city=ele.select("td[class=center]").text();
int price=Integer.parseInt(ele.select("td").get(1).text());
double rose=Float.parseFloat(ele.select("td").get(2).text())*0.01;
System.out.println(city);
}

jsoup解析xml某片段的问题的更多相关文章

  1. Jsoup解析Xml{详解}

    1:  概述 * 代码: //2.1获取student.xml的path String path = JsoupDemo1.class.getClassLoader().getResource(&qu ...

  2. Jsoup解析XML

    先导入jsoup.jar  包 方法1:不推荐,了解即可 方法 方法3: 后期学习主流

  3. XML解析——Jsoup解析器

    一.Jsoup解析器快速入门案例 Docement对象,文本对象,包含着各个Dom树结构 1.引入Jsoup解析器的jar包放在lib文件夹下后,写java代码 其中, 二.Jsoup对象 1.Jso ...

  4. Android之DOM解析XML

    一.DOM解析方法介绍 DOM是基于树形结构的节点或信息片段的集合,允许开发人员使用DOM API遍历XML树,检索所需数据.分析该结构通常需要加载整个文档和构造树形结构,然后才可以检索和更新节点信息 ...

  5. 解析 XML

    解析 XML 文档: 下面的代码片段把 XML 文档解析到 XML DOM 对象中: if (window.XMLHttpRequest){// code for IE7+, Firefox, Chr ...

  6. PULL解析XML的运行机制详解

    PULL解析简单易上手,基本上看一遍,基本上就会解析啦,但总是感觉对PULL解析的运行机制不是很了解,就总结了以下事件驱动到底是怎么执行的.. PULL: Android内置了PULL解析器.PULL ...

  7. 使用Jsoup解析html网页

    一.   JSOUP简介 在以往用java来处理解析HTML文档或者片段时,我们通常会采用htmlparser(http://htmlparser.sourceforge.net/)这个开源类库.现在 ...

  8. python解析xml之lxml

    虽然python解析xml的库很多,但是,由于lxml在底层是用C语言实现的,所以lxml在速度上有明显优势.除了速度上的优势,lxml在使用方面,易用性也非常好.这里将以下面的xml数据为例,介绍l ...

  9. Android中用PULL解析XML

    解析XML的方式有DOM,SAX,PULL,那为什么要在Android中使用PULL解析呢?首先来说一下PULL解析的优点,然后再说一下其他两种解析方式的缺点,答案就清晰可见啦. DOM不适合文档较大 ...

随机推荐

  1. 笔记13 winform

    一:panel 和 tablelayoutpanel,FlowLayoutPanel FlowLayoutPanel和TableLayoutPanel是.NET Framework的新增控件.顾名思义 ...

  2. Android异步载入AsyncTask具体解释

    曾看见有人说过.认为非常有道理.分享一下:   技术分为术和道两种:   (1)具体做事的方法是术.   (2)做事的原理和原则是道. 近期项目发现个重大问题.结果打log跟踪查是AsyncTask导 ...

  3. [概率dp] hdu 5378 Leader in Tree Land

    题意: 给你一颗以1位根节点的树.我们定义对于每一个子树,节点权值最大的权值记为这个子树的权值,为你将1~n放到这个树里 满足最大权值仅仅有k个的组合数是多少. 思路: 我们能够知道以每一个节点为子树 ...

  4. 更新 手淘 flexible 布局 rem 单位适配问题

    详见链接 https://github.com/amfe/lib-flexible

  5. Oracle SQL_杂记

    1. 查询当前用户角色,当前用户下的表权限以及所有用户表权限 desc user_role_privs;select * from user_role_privs; desc user_tab_pri ...

  6. erlang取列表中某个值的位置

    有个需求,比如在一个列表中,取出一个元素的位置,如果出现重复都取出.例如:List = [2,3,10,324,88,29,12],可以求大于某个值的位置,也可以取某个值的位置. 废话少说,直接上代码 ...

  7. Local Response Normalization 60 million parameters and 500,000 neurons

    CNN是工具,在图像识别中是发现图像中待识别对象的特征的工具,是剔除对识别结果无用信息的工具. ImageNet Classification with Deep Convolutional Neur ...

  8. Perl 正则表达式语法

    1. 概要 Perl正则表达式是Boost.regex 默认行为,也可以将perl传入basic_regex 构造. boost::regex  e1(my_expression); boost::r ...

  9. [数据挖掘课程笔记]人工神经网络(ANN)

    人工神经网络(Artificial Neural Networks)顾名思义,是模仿人大脑神经元结构的模型.上图是一个有隐含层的人工神经网络模型.X = (x1,x2,..,xm)是ANN的输入,也就 ...

  10. 一些js及css样式

    人体时钟: 源码: <div> <embed wmode="transparent" src="https://files.cnblogs.com/fi ...