1

我只想从 html 文件中解析两个值。

在此处输入图像描述

html文件中会有几个列表元素,我想解析两个值

一种。1,100, 101 b。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 的值

AssetManagerassetManager = 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);

现在我想将值放在 a href 之外,例如:Swargate to shivajinagar circle route。

任何人都知道方法或任何想法

4

1 回答 1

1

您甚至不需要为此使用解析。您可以使用正则表达式。

请参阅本教程关于 Java 中的正则表达式

然后你需要这样的东西:

<a[^>]*>([^<]*)<[^>]*>(.*)

作为你的正则表达式。然后,您将立即拥有所需的两个值。它比解析 html 性能要高得多。

于 2012-10-09T14:14:24.973 回答