2012-02-07 1 views
0

У меня есть html-файл, и мне нужно загрузить содержимое html в свою активность, и я даже не слышал о регулярном выражении. могли бы вы, друзья, помочь мне сделать это.Что такое регулярное выражение и как загрузить содержимое html с использованием регулярных выражений android

У меня есть ниже HTML файл, и мне нужно, чтобы получить {{название книги}} и остальное содержание с регулярными выражениями, как это, пожалуйста, помогите мне спасибо заранее

ответ

1

Я хотел бы использовать что-то вроде этого:

import java.util.StringTokenizer; 
import java.util.regex.Matcher; 
import java.util.regex.Pattern; 

class SimpleRegexExample { 
    //TODO: Load your html content from file 
    protected String html = "<html>\n" 
      + "<head>\n" 
      + " <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n" 
      + " <meta http-equiv=\"Content-Style-Type\" content=\"text/css\">\n" 
      + " <title></title>\n" 
      + " <meta name=\"Generator\" content=\"Cocoa HTML Writer\">\n" 
      + " <meta name=\"CocoaVersion\" content=\"1038.36\">\n" 
      + " <style type=\"text/css\">\n" 
      + "  p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 26.0px Helvetica}\n" 
      + "  p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 19.0px Helvetica}\n" 
      + "  p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px}\n" 
      + "  p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 19.0px Helvetica; min-height: 23.0px}\n" 
      + "  p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica}\n" 
      + " </style>\n" 
      + "</head>\n" 
      + "\n" 
      + " <body>\n" 
      + "  <p class=\"p1\"><b>{{BookName}}</b></p>\n" 
      + "  <p class=\"p2\">by {{AuthorName}}</p>\n" 
      + "  <p class=\"p3\"><br></p>\n" 
      + "  <p class=\"p3\"><br></p>\n" 
      + "  <p class=\"p4\"><span class=\"Apple-converted-space\"> </span></p>\n" 
      + "  <p class=\"p5\">{{AuthorBio}}</p>\n" 
      + "  <p class=\"p3\"><br></p>\n" 
      + "  <p class=\"p3\"><br></p>\n" 
      + "  <p class=\"p5\">{{Credits}}</p>\n" 
      + "  <p class=\"p3\"><br></p>\n" 
      + "  <p class=\"p3\"><br></p>\n" 
      + " </body>\n" 
      + "</html>\n"; 

    public SimpleRegexExample() { 
     // Split the html text into single lines 
     StringTokenizer st = new StringTokenizer(html, "\n"); 

     // Initialize the regex 
     String regex = "\\{\\{(.*?)\\}\\}"; 
     Pattern p = Pattern.compile(regex); 

     // Parses each line 
     while (st.hasMoreTokens()) { 
      String token = st.nextToken(); 
      Matcher m = p.matcher(token); 

      // Searches for matches 
      while (m.find()) { 
       if (m.group(1) != null) { 
        // TODO: Set here your replacement 
        html = html.replace("{{" + m.group(1) + "}}", m.group(1)); 
       } 
      } 
     } 

     // Prints the result 
     System.out.println(html); 
    } 

    public static void main(String[] args) { 
     new SimpleRegexExample(); 
    } 
} 
+0

я должен заменить HTML с путем к файлу? – cavallo

+0

Я не понимаю, что вы имеете в виду. – CSchulz

2

А регулярных выражений используется для определения и поиска шаблона текста внутри строки.

Просто проверьте ссылку ниже, вопрос с использованием stackoverflow с хорошим объяснением использования регулярных выражений.

How to use a regular expression and assign the result to variables in Android?

Я надеюсь, что это может помочь вам.

1

, чтобы получить содержание от XML/HTML лучший способ возможно является XPath вы можете направить есть запрос, чтобы получить элемент в DOM, которые содержат ваши необходимые данные.

Если HTML - это ваш контент, то я предлагаю u иметь атрибут, который указывает, что это имя книги.

вы можете использовать запрос XPath, как этот

// р [@ класс = 'p1']/б

Условие для XPath является то, что файл HTML должен иметь правильное закрывающий тег.

Но если вы хотите использовать регулярные выражения, то использовать этот

.+<p class=\"p1"> 

Это выражение будет матч для класса p1 и U нужно получить конечный индекс для этого выражения, чтобы получить положение б тега после p.

U может попробовать ваше выражение в

http://www.gskinner.com/RegExr/

Смежные вопросы