Vilken HTML parser använder ni?

Diskussion i 'Frågor, support och diskussion' startad av Dalla, 7 mar 2011.

  1. Kaj

    Kaj Senior Droid Medlem

    Blev medlem:
    12 jun 2009
    Inlägg:
    1 768
    Mottagna gillanden:
    44

    MINA ENHETER

    Kom ihåg att regexp ibland kan vara helt fel sätt för att parsa data, men här kommer ett exempel (skrivet i Java SE)

    PHP:

    import java
    .net.URL;
    import java.util.Scanner;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;

    public class 
    Friskis {
        public static 
    void main(String[] argsthrows Exception {
            
    URL page  = new URL("http://schema.sthlm.friskissvettis.se/index.php?func=la");
            
    Scanner scanner = new Scanner(page.openStream());

            
    //Hämta alla "stycken du är intresserad av..
            
    Pattern pattern Pattern.compile("<tr id=\"ro_.*?</tr>"Pattern.MULTILINE Pattern.DOTALL);
            
    String match null;
            while ((
    match scanner.findWithinHorizon(pattern0)) != null) {
                
    //"Parsa" varje stycke
                
    parseSection(match);
            }
        }
        
        static 
    Pattern COLUMNS Pattern.compile(
                
    "<td class=\"sort_col1\">([^<]+)</td>[^<]+" +
                
    "<td class=\"sort_col2\">([^<]+)</td>[^<]+" +
                
    "<td class=\"sort_col3\">([^<]+)</td>[^<]+" +     
                
    "<td class=\"sort_col4\">([^<]+)</td>");
                
        
        private static 
    void parseSection(String section) {
            
    Matcher matcher COLUMNS.matcher(section);
            if (
    matcher.find()) {
                
    System.out.println(matcher.group(1));
                
    System.out.println(matcher.group(2));
                
    System.out.println(matcher.group(3));
                
    System.out.println(matcher.group(4));
                
    System.out.println("");
            }
        }
    }
    Fick använda php-code-tag istället för code, verkar vara en bugg som gör att jag inte kan använda code-tag runt min källkod.
     
  2. Dalla

    Dalla Youth Droid Medlem

    Blev medlem:
    1 maj 2010
    Inlägg:
    145
    Mottagna gillanden:
    3

    MINA ENHETER

    Jo så är det förstås, men vet inte om jag har så många andra alternativ. Om man ska köra med en server som proxy så har jag själv inte så bra koll på annat än Google app engine, och då är man ju hyffsat begränsad i vilka klasser och 3rd party libs man kan använda.

    Tack för exemplet, får labba lite med det! :-)

    Har förresten också märkt att code-taggen inte verkar gilla < av någon anledning.