Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>So after much research I was able to get this parsed correctly so I figured I would answer my own question. I also had to change the structure of my program to get what I needed...or at least understand what I was doing before I started to implement it in the code above. So the 3 classes that are below are the ones I used to get what I needed...for now.</p> <pre><code>public class MyXMLHandler extends DefaultHandler { Boolean currentElement = false; String currentValue = null; public static ProgramList programList = null; public static ProgramList getProgramList() { return programList; } public static void setProgramList(ProgramList programList) { MyXMLHandler.programList = programList; } //called when tag starts ( ex:- &lt;tblPrograms&gt;diffgr:id="tblPrograms1" msdata:rowOrder="0"&lt;/tblPrograms&gt; -- &lt;tblPrograms&gt; ) @Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { currentElement = true; //set up for hierarchy scan to place data within category if (localName.equals("DataSet")) { /** Start */ programList = new ProgramList(); } else if (localName.equals("tblPrograms")){//"NewDataSet" - DOES NOT WORK - F.C. /** Get attribute value */ String attr = attributes.getValue(0); String attr2 = attributes.getValue(1); programList.setTable(attr); programList.setRowOrder(attr2); } } //called when tag closing ( ex:- &lt;Program&gt;Ancillary&lt;/Program&gt; -- &lt;/Program&gt; ) @Override public void endElement(String uri, String localName, String qName) throws SAXException { currentElement = false; /** set value */ if (localName.equalsIgnoreCase("Program")) programList.setProgram(currentValue); //else if (localName.equalsIgnoreCase("tblPrograms")) //programList.setWebsite(currentValue); } //called to get tag characters ( ex:- &lt;Program&gt;Ancillary&lt;/Program&gt; -- to get Ancillary character ) @Override public void characters(char[] ch, int start, int length) throws SAXException { if (currentElement) { currentValue = new String(ch, start, length); currentElement = false; } } } </code></pre> <p>Then I have my getter and setter methods for the variables within my program list.</p> <pre><code>//contains getter and setter method for variables public class ProgramList { //variables private ArrayList&lt;String&gt; program = new ArrayList&lt;String&gt;(); private ArrayList&lt;String&gt; rowOrder = new ArrayList&lt;String&gt;(); private ArrayList&lt;String&gt; table = new ArrayList&lt;String&gt;(); //in Setter method default it will return arraylist change that to add public ArrayList&lt;String&gt; getProgram() { return program; } public void setProgram(String program) { this.program.add(program); } public ArrayList&lt;String&gt; getRowOrder() { return rowOrder; } public void setRowOrder(String rowOrder) { this.rowOrder.add(rowOrder); } public ArrayList&lt;String&gt; getTable() { return table; } public void setTable(String table) { this.table.add(table); } } </code></pre> <p>Finally main</p> <pre><code>public class XMLParsingExample extends Activity { //create object For SiteList class ProgramList programList = null; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //create a new layout to display the view //LinearLayout layout = new LinearLayout(this); //layout.setOrientation(1); LinearLayout ll = (LinearLayout)findViewById(R.id.LL01); //create a new textview array to display the results //TextView name[]; //TextView website[]; //TextView category[]; try { //handle XML SAXParserFactory spf = SAXParserFactory.newInstance(); SAXParser sp = spf.newSAXParser(); XMLReader xr = sp.getXMLReader(); //URL to parse XML Tags URL sourceUrl = new URL( "http://www.ces.org/android/android.asmx/SelectPrograms"); //Create handler to handle XML Tags ( extends DefaultHandler ) MyXMLHandler myXMLHandler = new MyXMLHandler(); xr.setContentHandler(myXMLHandler); xr.parse(new InputSource(sourceUrl.openStream())); } catch (Exception e) { System.out.println("XML Pasing Excpetion = " + e); } //get result from MyXMLHandler SitlesList Object programList = MyXMLHandler.programList; //assign a textview array length by arraylist size TextView name[] = new TextView[programList.getProgram().size()]; TextView website[] = new TextView[programList.getProgram().size()]; TextView category[] = new TextView[programList.getProgram().size()]; //set the result text in textview and add it to layout for (int i = 0; i &lt; programList.getProgram().size(); i++) { name[i] = new TextView(this); name[i].setText("Program = "+programList.getProgram().get(i)); name[i].setBackgroundColor(Color.BLUE); website[i] = new TextView(this); website[i].setText("Row Order = "+programList.getRowOrder().get(i)); category[i] = new TextView(this); category[i].setText("Program Table = "+programList.getTable().get(i)); //layout.addView(name[i]); //layout.addView(website[i]); //layout.addView(category[i]); ll.addView(name[i]); ll.addView(website[i]); ll.addView(category[i]); } //set the layout view to display //setContentView(layout); setContentView(ll); } } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload