Note that there are some explanatory texts on larger screens.

plurals
  1. POstax getting atribute value from elements
    primarykey
    data
    text
    <p>I try to parse XML file from URI using STAX!</p> <p>XML looking something like this:</p> <pre><code> &lt;Type type_id="4218"&gt; &lt;Title&gt;English Premier League&lt;/Title&gt; &lt;Event start_time="2011-12-18 16:10:00" ev_id="2893772"&gt; &lt;Description&gt;Manchester City v Arsenal&lt;/Description&gt; &lt;Market mkt_typ="Win/Draw/Win"&gt; &lt;Occurrence bet_id="42455761" decimal="1.6666666666667"&gt; &lt;Description&gt;Manchester City&lt;/Description&gt; &lt;/Occurrence&gt; &lt;Occurrence bet_id="42455762" decimal="3.6"&gt; &lt;Description&gt;Draw&lt;/Description&gt; &lt;/Occurrence&gt; &lt;Occurrence bet_id="42455764" decimal="5"&gt; &lt;Description&gt;Arsenal&lt;/Description&gt; &lt;/Occurrence&gt; &lt;/Market&gt; &lt;/Event&gt; &lt;/Type&gt; </code></pre> <p>output should be:</p> <pre><code>id:4218 title:English Premier League ev_id:2893772 date of match:Sun Dec 18 16:10:00 CET 2011 description:Manchester City v Arsenal one:1.6666666666667 draw:3.6 two:5 </code></pre> <p>My code looks something like this:</p> <pre><code>XMLInputFactory factory = XMLInputFactory.newInstance(); try { XMLStreamReader streamReader = factory.createXMLStreamReader(new URL("http://cubs.bluesq.com/cubs/cubs.php?action=getpage&amp;thepage=385.xml").openStream()); while (streamReader.hasNext()) { int event = streamReader.next(); if(event == XMLStreamConstants.START_ELEMENT){ if(streamReader.getLocalName().equals("Type")){ long id = Integer.parseInt(streamReader.getAttributeValue(null, "type_id")); if( id == 4218){ System.out.println("id:"+id); streamReader.nextTag(); System.out.println("title:"+streamReader.getElementText()); streamReader.nextTag(); int ev_id = Integer.parseInt(streamReader.getAttributeValue(null, "ev_id")); System.out.println("ev_id:"+ev_id); DateFormat formater = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); formater.setTimeZone(TimeZone.getTimeZone("CET")); String tempDatum = streamReader.getAttributeValue(null,"start_time"); Date dateOfMatch = formater.parse(tempDatum); System.out.println("date of match:"+dateOfMatch); streamReader.nextTag(); String description = streamReader.getElementText(); System.out.println("description:"+ description); streamReader.nextTag(); String market = streamReader.getAttributeValue(null, "mkt_typ"); if(market.equals("Win/Draw/Win")){ streamReader.nextTag(); double one = Double.parseDouble(streamReader.getAttributeValue(null, "decimal")); System.out.println("one:"+ one); double draw = Double.parseDouble(streamReader.getAttributeValue(null, "decimal")); System.out.println("draw:"+draw); double two = Double.parseDouble(streamReader.getAttributeValue(null, "decimal")); System.out.println("two:"+two); } } } } } </code></pre> <p>This code produce output:</p> <pre><code>id:4218 title:English Premier League ev_id:2893772 date of match:Sun Dec 18 16:10:00 CET 2011 description:Manchester City v Arsenal one:1.6666666666667 draw:1.6666666666667 two:1.6666666666667 </code></pre> <p>how do I get others value from atribute "decimal" in elements "Occurrence"??? </p>
    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.
 

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