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.
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
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