anous Posté(e) 19 juin 2012 Share Posté(e) 19 juin 2012 Bonjour, j'ai un programme java qui utilise le html cleaner pour structurer le code html d'une page web et l'enregistrer sous format xml. et j'ai un autre programme android situé dans un projet android, qui fait le Parsing de ce fichier xml que j'ai enregistré avec le premier programme. Ma question, est comment regrouper les deux code, c'est a dire,mettre le programme java (html cleaner) dans le programe android et pouvoir directement parser le contenu sans aller récuperer le fichier xml..?? programme java html cleaner: import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; import org.htmlcleaner.CleanerProperties; import org.htmlcleaner.CleanerTransformations; import org.htmlcleaner.HtmlCleaner; import org.htmlcleaner.PrettyXmlSerializer; import org.htmlcleaner.TagNode; import org.htmlcleaner.TagTransformation; public class zbel { public static void main(String [] arg) throws IOException { CleanerProperties props = new CleanerProperties(); // set some properties to non-default values props.setTranslateSpecialEntities(true); props.setTransResCharsToNCR(true); props.setOmitComments(true); props.setPruneTags("script,meta,a,select,class,head"); CleanerTransformations transformations = new CleanerTransformations(); TagTransformation tt = new TagTransformation("span"); transformations.addTransformation(tt); HtmlCleaner cleaner = new HtmlCleaner(props); cleaner.setTransformations(transformations); // do parsing TagNode tagNode = cleaner.clean(new URL("http://oncf.ma/Fr/horraires.aspx?ep=2&elt=26&CodeRD=0093&CodeGD=00213&CodeRA=0093&CodeGA=00303&heure=0000&date=10/06/2012")); // serialize to xml file new PrettyXmlSerializer(props).writeToFile(tagNode, "C:/Users/Anass/Desktop/Master/My Shared Folder/xpath_andro/res/raw/fichier_xml", "utf-8"); }} code android Xpath pour le parsing du fichier xml qui a été généré par le code Java package com.path.path; import java.util.ArrayList; import javax.xml.xpath.XPath; import javax.xml.xpath.XPathConstants; import javax.xml.xpath.XPathFactory; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.InputSource; import android.app.ListActivity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.Toast; import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; import org.htmlcleaner.CleanerProperties; import org.htmlcleaner.CleanerTransformations; import org.htmlcleaner.HtmlCleaner; import org.htmlcleaner.PrettyXmlSerializer; import org.htmlcleaner.TagNode; import org.htmlcleaner.TagTransformation; public class Xpath_androActivity extends ListActivity { // data ArrayList<String> mPeople = new ArrayList<String>(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); try { parseData(); } catch(Exception ex) { Toast.makeText(this, "Exception: " + ex.getMessage(), Toast.LENGTH_LONG).show(); } // pass adapter w/ data queried through XPath to ListView ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, mPeople); setListAdapter(adapter); } private void parseData() throws Exception { // create an InputSource object from /res/raw InputSource inputSrc = new InputSource(getResources().openRawResource(R.raw.pchaakh)); // query XPath instance, this is the parser XPath xpath = XPathFactory.newInstance().newXPath(); // specify the xpath expression String expression = "//div[@id=tblResultatHoraire1]//td"; // list of nodes queried NodeList nodes = (NodeList)xpath.evaluate(expression, inputSrc, XPathConstants.NODESET); Toast.makeText(this, "count: " + String.valueOf(nodes.getLength()),Toast.LENGTH_SHORT).show(); // if node found if(nodes != null && nodes.getLength() > 0) { mPeople.clear(); int len = nodes.getLength(); for(int i = 0; i < len; ++i) { // query value Node node = nodes.item(i); mPeople.add(node.getTextContent()); }}} } Lien vers le commentaire Partager sur d’autres sites More sharing options...
2beta Posté(e) 21 juin 2012 Share Posté(e) 21 juin 2012 Mauvaise section ici ce n'est que pour présenter son application, une section entière est dédiée au développement Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.