Parsing some different kind of XML

Problems with WiFi, SQLite ,Bluetooth, WiMax, Proxies, etc...

Parsing some different kind of XML

Postby galip91 » Sat Jan 16, 2010 7:22 pm

Hi i'm combining different webservices to my app and i've come across one that isn't workig.

The ones that ARE working are like this:
Syntax: [ Download ] [ Hide ]
Using xml Syntax Highlighting
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2.  
  3. <HuizenZoekerWebServices version="1" date="2008-10-28">
  4.  
  5.         <Responce>
  6.  
  7.               <name>blabla</name>
  8.  
  9.         </Response>
  10.  
  11. </HuizenZoekerWebServices>
Parsed in 0.001 seconds, using GeSHi 1.0.8.4


But now i have one that has 'xmlns' or something in it's XML-code. My regular XML parser can't seem to parse it.

This is the new webservice that DOESN'T work:
Syntax: [ Download ] [ Hide ]
Using xml Syntax Highlighting
  1. <?xml version="1.0" encoding="UTF-8"?>
  2.  
  3. <DataSet xmlns="http://pathe.nl/filmfeed/">
  4.  
  5. <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
  6.  
  7.     <NewDataSet xmlns="">
  8.  
  9.       <agenda diffgr:id="agenda1" msdata:rowOrder="0">
  10.  
  11.         <agendaid>2363092</agendaid>
  12.  
  13.         <bios_id>6</bios_id>
  14.  
  15.         <film_id>845</film_id>
  16.  
  17.         <tijdstip>2010-01-12T21:00:00+01:00</tijdstip>
  18.  
  19.         <dag>2010-01-12T00:00:00+01:00</dag>
  20.  
  21.         <special>4</special>
  22.  
  23.         <ind_vip>N</ind_vip>
  24.  
  25.         <zaalnummer>7</zaalnummer>
  26.  
  27.         <type>S</type>
  28.  
  29.       </agenda>
  30.  
  31. </NewDataSet>
  32.  
  33. </diffgr:diffgram>
  34.  
  35. </DataSet>
  36.  
  37. </DataSet>
Parsed in 0.004 seconds, using GeSHi 1.0.8.4


This is my code

The main activity; MessageList.java:
Syntax: [ Download ] [ Hide ]
Using java Syntax Highlighting
  1. public class MessageList extends ListActivity{
  2.  
  3.        
  4.  
  5.         private List<Waardes> waardes;
  6.  
  7.         int a = 0;
  8.  
  9.         private String TAG = "Galip";
  10.  
  11.        
  12.  
  13.     @Override
  14.  
  15.     public void onCreate(Bundle icicle) {
  16.  
  17.         super.onCreate(icicle);
  18.  
  19.         setContentView(R.layout.main);
  20.  
  21.         loadFeed();
  22.  
  23.     }
  24.  
  25.        
  26.  
  27.         private void loadFeed(){
  28.  
  29.         try{
  30.  
  31.                
  32.  
  33.                 Parser parser = new Parser();
  34.  
  35.                 waardes = parser.parse("PTH", 51.9596, 4.5688);
  36.  
  37.                 List<String> titles = new ArrayList<String>();
  38.  
  39.                 for (Waardes w : waardes){
  40.  
  41.                         titles.add("agendaID: " + w.getPTHagendaid());
  42.  
  43.                         titles.add("biosID: " + w.getPTHbiosid());
  44.  
  45.                         titles.add("FilmID: " + w.getPTHfilmid());
  46.  
  47.                         titles.add("Afstand: " + w.getINGAfstand() + " meter");
  48.  
  49.                         titles.add(" ");
  50.  
  51.                 }              
  52.  
  53.                 ArrayAdapter<String> adapter =
  54.  
  55.                         new ArrayAdapter<String>(this, R.layout.row,titles);
  56.  
  57.                 this.setListAdapter(adapter);
  58.  
  59.         } catch (Throwable t){
  60.  
  61.                 Log.e("AndroidNews",t.getMessage(),t);
  62.  
  63.         }
  64.  
  65.         }
  66.  
  67. }
Parsed in 0.034 seconds, using GeSHi 1.0.8.4


The parser method in Parser.java:
Syntax: [ Download ] [ Hide ]
Using java Syntax Highlighting
  1. public List<Waardes> parsePTH(double d, double e2) {
  2.  
  3.                 final Waardes currentMessage = new Waardes();
  4.  
  5.                 final List<Waardes> waardes = new ArrayList<Waardes>();
  6.  
  7.                 final String url = "http://pathe.nl/filmfeed/";
  8.  
  9.                 RootElement root = new RootElement(url, "DataSet");
  10.  
  11.                 Element diffgram = root.getChild("diffgr:diffgram");
  12.  
  13.                 Element NewDataSet = diffgram.getChild("NewDataSet");
  14.  
  15.                 Element agenda = NewDataSet.getChild("agenda");
  16.  
  17.                
  18.  
  19.                 agenda.setEndElementListener(new EndElementListener(){
  20.  
  21.                         public void end() {
  22.  
  23.                                 waardes.add(currentMessage.PTHcopy());
  24.  
  25.                         }
  26.  
  27.                 });
  28.  
  29.                 agenda.getChild("agendaid").setEndTextElementListener(new EndTextElementListener(){
  30.  
  31.                         public void end(String body){
  32.  
  33.                                 currentMessage.setPTHagendaid(body);
  34.  
  35.                         }
  36.  
  37.                        
  38.  
  39.                 });
  40.  
  41.                 agenda.getChild("bios_id").setEndTextElementListener(new EndTextElementListener(){
  42.  
  43.                         public void end(String body) {
  44.  
  45.                                 currentMessage.setPTHbiosid(body);
  46.  
  47.                         }
  48.  
  49.                 });
  50.  
  51.                 agenda.getChild("film_id").setEndTextElementListener(new EndTextElementListener(){
  52.  
  53.                         public void end(String body) {
  54.  
  55.                                 currentMessage.setPTHfilmid(body);
  56.  
  57.                         }
  58.  
  59.                 });
  60.  
  61.                 agenda.getChild("tijdstip").setEndTextElementListener(new EndTextElementListener(){
  62.  
  63.                         public void end(String body) {
  64.  
  65.                                 currentMessage.setPTHtijdstip(body);
  66.  
  67.                         }
  68.  
  69.                 });
  70.  
  71.                 agenda.getChild("dag").setEndTextElementListener(new EndTextElementListener(){
  72.  
  73.                         public void end(String body) {
  74.  
  75.                                 currentMessage.setPTHdag(body);
  76.  
  77.                         }
  78.  
  79.                 });
  80.  
  81.                 agenda.getChild("special").setEndTextElementListener(new EndTextElementListener(){
  82.  
  83.                         public void end(String body) {
  84.  
  85.                                 currentMessage.setPTHspecial(body);
  86.  
  87.                         }
  88.  
  89.                 });
  90.  
  91.                 agenda.getChild("ind_vip").setEndTextElementListener(new EndTextElementListener(){
  92.  
  93.                         public void end(String body) {
  94.  
  95.                                 currentMessage.setPTHindvip(body);
  96.  
  97.                         }
  98.  
  99.                 });
  100.  
  101.                 agenda.getChild("zaalnummer").setEndTextElementListener(new EndTextElementListener(){
  102.  
  103.                         public void end(String body) {
  104.  
  105.                                 currentMessage.setPTHzaalnr(body);
  106.  
  107.                         }
  108.  
  109.                 });
  110.  
  111.                 agenda.getChild("type").setEndTextElementListener(new EndTextElementListener(){
  112.  
  113.                         public void end(String body) {
  114.  
  115.                                 currentMessage.setPTHtype(body);
  116.  
  117.                         }
  118.  
  119.                 });
  120.  
  121.                 String feedUrlString = "http://www.pathe.nl/export/export.asmx/HaalAgenda?filmId=0&biosId=6";
  122.  
  123.                 URL feedUrl;
  124.  
  125.                 try {
  126.  
  127.                         feedUrl = new URL(feedUrlString);
  128.  
  129.                         Xml.parse(feedUrl.openConnection().getInputStream(), Xml.Encoding.UTF_8, root.getContentHandler());
  130.  
  131.                 } catch (Exception e) {
  132.  
  133.                         throw new RuntimeException(e);
  134.  
  135.                 }
  136.  
  137.                 return waardes;
  138.  
  139.         }
Parsed in 0.042 seconds, using GeSHi 1.0.8.4


Waardes.java (where the values get saved. with setters and getters)

Syntax: [ Download ] [ Hide ]
Using java Syntax Highlighting
  1. //Pathe
  2.  
  3.         private String PTHdiffgr;
  4.  
  5.         private String PTHagendaid;
  6.  
  7.         private String PTHbiosid;
  8.  
  9.         private String PTHfilmid;
  10.  
  11.         private String PTHtijdstip;
  12.  
  13.         private String PTHdag;
  14.  
  15.         private String PTHspecial;
  16.  
  17.         private String PTHindvip;
  18.  
  19.         private String PTHzaalnr;
  20.  
  21.         private String PTHtype;
  22.  
  23.  
  24.  
  25. //Pathe getters and setters (not all of them)
  26.  
  27.         public String getPTHagendaid() {
  28.  
  29.                 return PTHagendaid;
  30.  
  31.         }
  32.  
  33.  
  34.  
  35.         public void setPTHagendaid(String pTHagendaid) {
  36.  
  37.                 this.PTHagendaid = pTHagendaid;
  38.  
  39.         }
  40.  
  41.  
  42.  
  43.         public String getPTHbiosid() {
  44.  
  45.                 return PTHbiosid;
  46.  
  47.         }
  48.  
  49.  
  50.  
  51.         public void setPTHbiosid(String pTHbiosid) {
  52.  
  53.                 this.PTHbiosid = pTHbiosid;
  54.  
  55.         }
  56.  
  57.        
  58.  
  59. public Waardes PTHcopy(){
  60.  
  61.                 Waardes copy = new Waardes();
  62.  
  63.                 copy.PTHdiffgr = PTHdiffgr;
  64.  
  65.                 copy.PTHagendaid = PTHagendaid;
  66.  
  67.                 copy.PTHbiosid = PTHbiosid;
  68.  
  69.                 copy.PTHfilmid = PTHfilmid;
  70.  
  71.                 copy.PTHtijdstip = PTHtijdstip;
  72.  
  73.                 copy.PTHdag = PTHdag;
  74.  
  75.                 copy.PTHspecial = PTHspecial;
  76.  
  77.                 copy.PTHindvip = PTHindvip;
  78.  
  79.                 copy.PTHzaalnr = PTHzaalnr;
  80.  
  81.                 copy.PTHtype = PTHtype;
  82.  
  83.                 return copy;
  84.  
  85.         }
Parsed in 0.038 seconds, using GeSHi 1.0.8.4


More information and explanations about the service can be found at http://www.pathe.nl/export/export.asmx?op=HaalAgenda
Here it shows the different ways of getting the data (Soap 1.1/1.2, HTTP GET etc.) Maybe that can help you.

I hope someone can help me. Even it's a little push in the right direction :)

If you need more information, just ask.
galip91
Freshman
Freshman
 
Posts: 5
Joined: Mon Jan 11, 2010 1:13 pm

Top

Return to Networking & Database Problems

Who is online

Users browsing this forum: No registered users and 2 guests