parseur et fichier

parseur et fichier - Java - Programmation

Marsh Posté le 19-03-2016 à 16:27:27    

salut a tous
je suis nouveau dans l'utilisation de java  
j'ai trouvé ce bout de code pour parser un texte du web  (utilise stringBuilder )  
mais j'ai  pas arrivé à mettre le résultat dans un fichier texte.
si quelqu'un peut m'aider.
merci d'avance.
 
import java.io.BufferedReader;
import java.io.FileReader;
import java.net.URL;
import java.util.ArrayList;
import org.xml.sax.Attributes;
import org.xml.sax.InputSource;
import org.xml.sax.helpers.DefaultHandler;
 
public class XHTMLParseExample {
    public static void main(String args[]) throws Exception {
 
        // print the text in <p> ... </p> tags on http://www.w3.org/
        // using the standard Java XML parser, Xerxes
 
        javax.xml.parsers.SAXParserFactory.newInstance().newSAXParser().parse(
            new URL("https://ar.wikipedia.org/wiki/%D8%AD%D8%B1%D8%A8" ).openConnection().getInputStream(),
            new DefaultHandler() {
                ArrayList<StringBuilder> p = new ArrayList<StringBuilder>();
 
                public void startElement(String uri, String localName,
                                         String name, Attributes a)
                {
                    // push a string buffer for every <p> tag
                    if (name.equalsIgnoreCase("p" )) {
                        p.add(new StringBuilder());
                    }
                }
 
                public void endElement(String uri, String localName, String name)
                {
                    // pop and print a string buffer for every </p> tag
                    if (name.equalsIgnoreCase("p" )) {
                        int lastIdx = p.size() - 1;
                        System.out.print("PARA: " + p.remove(lastIdx));
                    }
                }
 
                public void characters(char[] ch, int start, int length) {
                    // append any characters to the current string buffer
                    int lastIdx = p.size() - 1;
                    if (lastIdx > -1) {
                       p.get(lastIdx).append(new String(ch, start, length)).append(' ');
                                   
                     
                    }
                }
 
                // if we don't include a fake resolveEntity() method, Xerxes
                // will try to download the entity URI listed its cached DTD:
                // http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent
                public InputSource resolveEntity(String publicId, String systemId)
                    throws org.xml.sax.SAXException, java.io.IOException
                {
                    final String fake = "<!ENTITY nbsp \" \">";
                    return new InputSource(new java.io.StringReader(fake));
                }
            }
        );
    }
}


Message édité par nh-etudiant le 19-03-2016 à 16:29:14
Reply

Marsh Posté le 19-03-2016 à 16:27:27   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed