我只想解析html文件中的两个值。
html文件中会有几个列表元素,我想解析两个值
一个。 1,100,101 湾Swargate到Shivajinagar Circle路线,Mnapa bhavan到..,Kothrud仓库到......
我使用下面的代码来解析它,但我没有得到所需的值,这里我只得到href值。
请给我任何解决上述问题的方法
String html =
"<li/><a href=r361.html>1</a> Swargate to Shivajinagar Circle route"+
" <li/><a href=r511.html>100</a> Manpa bhavan to Hinjewadi phase 3"+
"<li/><a href=r572.html>101</a> Kothrud depot to Kondhava Bu";
Reader reader = new StringReader(html);
HTMLEditorKit.Parser parser = new ParserDelegator();
final List<String> links = new ArrayList<String>();
parser.parse(reader, new HTMLEditorKit.ParserCallback(){
public void handleStartTag(HTML.Tag t, MutableAttributeSet a, int pos) {
if(t == HTML.Tag.A) {
Object link = a.getAttribute(HTML.Attribute.HREF);
if(link != null) {
links.add(String.valueOf(link));
}
}
}
}, true);
reader.close();
System.out.println(links);
}
更新
现在我使用下面的代码(使用JSOUP Lib)获得href的值
AssetManager assetManager = getAssets(); InputStream ims = assetManager.open(“index.html”); 文档doc = Jsoup.parse(ims,“UTF-8”,“btc.com”); 元素busNum = doc.getElementsByTag(“a”); pTagString = busNum.html();
Log.i(“hh”,“onPostExecute =”+ PTagString);
现在我希望将价值排除在外,例如:Swargate to shivajinagar circle route。
任何人都知道方法或任何想法
答案 0 :(得分:0)
您甚至不需要使用解析。你可以使用正则表达式。
请参阅this Tutorial about regex in Java
然后你需要这样的东西:
<a[^>]*>([^<]*)<[^>]*>(.*)
作为你的正则表达式。然后,您将立即拥有所需的两个值。它比解析html更有效。