List of usage examples for javax.xml.stream XMLStreamConstants START_ELEMENT
int START_ELEMENT
To view the source code for javax.xml.stream XMLStreamConstants START_ELEMENT.
Click Source Link
From source file:savant.util.Version.java
/** * Factory method which construct a Version object from a URL pointing to an XML file. * @param url URL of our version.xml file * @return the version number read from the file *//*from www . jav a 2 s. c om*/ public static Version fromURL(URL url) throws IOException { try { XMLStreamReader reader = XMLInputFactory.newInstance() .createXMLStreamReader(NetworkUtils.openStream(url)); boolean done = false; boolean foundCurrentVersion = false; do { switch (reader.next()) { case XMLStreamConstants.START_ELEMENT: String elemName = reader.getLocalName(); if (elemName.equals("version") && "current_release".equals(reader.getAttributeValue(null, "status"))) { foundCurrentVersion = true; } else if (foundCurrentVersion && elemName.equals("name")) { return new Version(reader.getElementText()); } else { foundCurrentVersion = false; } break; case XMLStreamConstants.END_DOCUMENT: reader.close(); done = true; break; } } while (!done); } catch (XMLStreamException x) { throw new IOException("Unable to get version number from web-site.", x); } return null; }
From source file:tkwatch.Utilities.java
/** * Finds the value of the named element, if any, in an XML string. Adapted * from Vohra and Vohra, <i>Pro XML Development with Java Technology</i>, p. * 47./* www. j a v a 2 s . com*/ * * @param desiredElementName * The name of the element to search for in the XML string. * @param xmlString * The XML string to search for an account number. * * @return Returns the element value(s) as formatted in the incoming string * (if found) as a <code>Vector<String></code>, <code>null</code> * otherwise. */ public static final Vector<String> getValueFromXml(final String desiredElementName, final String xmlString) { Vector<String> elementValue = new Vector<String>(); String elementValueText = null; XMLInputFactory inputFactory = XMLInputFactory.newInstance(); try { String elementName = ""; StringReader stringReader = new StringReader(xmlString); XMLStreamReader reader = inputFactory.createXMLStreamReader(stringReader); while (reader.hasNext()) { int eventType = reader.getEventType(); switch (eventType) { case XMLStreamConstants.START_ELEMENT: elementName = reader.getLocalName(); if (elementName.equals(desiredElementName)) { elementValueText = reader.getAttributeValue(0); System.out.println("START_ELEMENT case, element name is " + elementName + ", element value is " + elementValueText); } break; case XMLStreamConstants.ATTRIBUTE: elementName = reader.getLocalName(); if (elementName.equals(desiredElementName)) { elementValueText = reader.getElementText(); System.out.println("ATTRIBUTE case, element name is " + elementName + ", element value is " + elementValueText); elementValue.add(elementValueText); } break; case XMLStreamConstants.END_ELEMENT: elementName = reader.getLocalName(); if (elementName.equals(desiredElementName)) { System.out.println("END_ELEMENT case, element name is " + elementName + ", element value is " + elementValueText); } break; default: elementName = reader.getLocalName(); if (elementName != null) { if (elementName.equals(desiredElementName)) { System.out.println("default case, element name is " + elementName); } } break; } reader.next(); } } catch (XMLStreamException e) { TradekingException.handleException(e); } return (elementValue.isEmpty() ? null : elementValue); }
From source file:tpt.dbweb.cat.io.TaggedTextXMLReader.java
private Iterator<TaggedText> getIterator(InputStream is, String errorMessageInfo) { XMLStreamReader tmpxsr = null; try {/* w w w .j a v a 2 s. c om*/ XMLInputFactory xif = XMLInputFactory.newInstance(); xif.setProperty(XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES, false); xif.setProperty(XMLInputFactory.IS_REPLACING_ENTITY_REFERENCES, false); xif.setProperty(XMLInputFactory.IS_VALIDATING, false); tmpxsr = xif.createXMLStreamReader(is); } catch (XMLStreamException | FactoryConfigurationError e) { e.printStackTrace(); return null; } final XMLStreamReader xsr = tmpxsr; return new PeekIterator<TaggedText>() { @Override protected TaggedText internalNext() { ArrayList<TextSpan> openMarks = new ArrayList<>(); StringBuilder pureTextSB = new StringBuilder(); ArrayList<TextSpan> marks = new ArrayList<>(); marks.add(new TextSpan(null, 0, 0)); TaggedText tt = null; try { loop: while (xsr.hasNext()) { xsr.next(); int event = xsr.getEventType(); switch (event) { case XMLStreamConstants.START_ELEMENT: if ("articles".equals(xsr.getLocalName())) { } else if ("article".equals(xsr.getLocalName())) { tt = new TaggedText(); for (int i = 0; i < xsr.getAttributeCount(); i++) { if ("id".equals(xsr.getAttributeLocalName(i))) { tt.id = xsr.getAttributeValue(i); } tt.info().put(xsr.getAttributeLocalName(i), xsr.getAttributeValue(i)); } } else if ("mark".equals(xsr.getLocalName())) { TextSpan tr = new TextSpan(null, pureTextSB.length(), pureTextSB.length()); for (int i = 0; i < xsr.getAttributeCount(); i++) { tr.info().put(xsr.getAttributeLocalName(i), xsr.getAttributeValue(i)); } openMarks.add(tr); } else if ("br".equals(xsr.getLocalName())) { // TODO: how to propagate tags from the input to the output? } else { log.warn("ignore tag " + xsr.getLocalName()); } break; case XMLStreamConstants.END_ELEMENT: if ("mark".equals(xsr.getLocalName())) { // search corresponding <mark ...> TextSpan tr = openMarks.remove(openMarks.size() - 1); if (tr == null) { log.warn("markend at " + xsr.getLocation().getCharacterOffset() + " has no corresponding mark tag"); break; } tr.end = pureTextSB.length(); marks.add(tr); } else if ("article".equals(xsr.getLocalName())) { tt.text = StringUtils.stripEnd(pureTextSB.toString().trim(), " \t\n"); pureTextSB = new StringBuilder(); tt.mentions = new ArrayList<>(); for (TextSpan mark : marks) { String entity = mark.info().get("entity"); if (entity == null) { entity = mark.info().get("annotation"); } if (entity != null) { EntityMention e = new EntityMention(tt.text, mark.start, mark.end, entity); String minMention = mark.info().get("min"); String mention = e.getMention(); if (minMention != null && !"".equals(minMention)) { Pattern p = Pattern.compile(Pattern.quote(minMention)); Matcher m = p.matcher(mention); if (m.find()) { TextSpan min = new TextSpan(e.text, e.start + m.start(), e.start + m.end()); e.min = min; if (m.find()) { log.warn("found " + minMention + " two times in \"" + mention + "\""); } } else { String prefix = Utility.findLongestPrefix(mention, minMention); log.warn("didn't find min mention '" + minMention + "' in text '" + mention + "', longest prefix found: '" + prefix + "' in article " + tt.id); } } mark.info().remove("min"); mark.info().remove("entity"); if (mark.info().size() > 0) { e.info().putAll(mark.info()); } tt.mentions.add(e); } } openMarks.clear(); marks.clear(); break loop; } break; case XMLStreamConstants.CHARACTERS: String toadd = xsr.getText(); if (pureTextSB.length() == 0) { toadd = StringUtils.stripStart(toadd, " \t\n"); } if (toadd.contains("thanks")) { log.info("test"); } pureTextSB.append(toadd); break; } } } catch (XMLStreamException e) { log.error("{}", errorMessageInfo); throw new RuntimeException(e); } if (tt != null && tt.mentions != null) { tt.mentions.sort(null); } return tt; } }; }