javax.xml.stream.XMLStreamReader.next()方法的使用及代码示例

x33g5p2x  于2022-02-02 转载在 其他  
字(11.0k)|赞(0)|评价(0)|浏览(354)

本文整理了Java中javax.xml.stream.XMLStreamReader.next()方法的一些代码示例,展示了XMLStreamReader.next()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。XMLStreamReader.next()方法的具体详情如下:
包路径:javax.xml.stream.XMLStreamReader
类名称:XMLStreamReader
方法名:next

XMLStreamReader.next介绍

[英]Get next parsing event - a processor may return all contiguous character data in a single chunk, or it may split it into several chunks. If the property javax.xml.stream.isCoalescing is set to true element content must be coalesced and only one CHARACTERS event must be returned for contiguous element content or CDATA Sections. By default entity references must be expanded and reported transparently to the application. An exception will be thrown if an entity reference cannot be expanded. If element content is empty (i.e. content is "") then no CHARACTERS event will be reported.

Given the following XML:
<foo><!--description-->content text<![CDATA[<greeting>Hello< /greeting>]]>other content</foo>
The behavior of calling next() when being on foo will be:
1- the comment (COMMENT)
2- then the characters section (CHARACTERS)
3- then the CDATA section (another CHARACTERS)
4- then the next characters section (another CHARACTERS)
5- then the END_ELEMENT

NOTE: empty element (such as <tag/>) will be reported with two separate events: START_ELEMENT, END_ELEMENT - This preserves parsing equivalency of empty element to <tag></tag>.
[中]Get next parsing event(获取下一个解析事件)-处理器可以返回单个块中的所有连续字符数据,也可以将其拆分为多个块。如果属性为javax。xml。流动IsCoalScing设置为true元素内容必须合并,并且对于连续元素内容或CDATA节,只能返回一个字符事件。默认情况下,实体引用必须以透明的方式展开并报告给应用程序。如果无法展开实体引用,将引发异常。如果元素内容为空(即内容为“”),则不会报告任何字符事件。
给定以下XML:
<foo><--说明-->内容文本<![CDATA[<greeting>你好</greeting>]>其他内容</foo>
在foo上调用next()的行为将是:
1-评论(评论)
2-然后是字符部分(字符)
3-然后是CDATA部分(另一个字符)
4-然后是下一个字符部分(另一个字符)
5-然后是结束元素
注意:空元素(例如<tag/>)将报告两个单独的事件:START_元素、END_元素-这将保留空元素对<tag></tag>的解析等价性。

代码示例

代码示例来源:origin: spring-projects/spring-framework

private int moveToNextElement(XMLStreamReader streamReader) throws XMLStreamException {
  int event = streamReader.getEventType();
  while (event != XMLStreamReader.START_ELEMENT && event != XMLStreamReader.END_DOCUMENT) {
    event = streamReader.next();
  }
  return event;
}

代码示例来源:origin: stackoverflow.com

FileInputStream fis = null;
 try {
   fis = new FileInputStream("test.xml");
   XMLInputFactory xmlInFact = XMLInputFactory.newInstance();
   XMLStreamReader reader = xmlInFact.createXMLStreamReader(fis);
   while(reader.hasNext()) {
     reader.next(); // do something here
   }
 }
 catch(IOException exc) {
 }
 catch(XMLStreamException exc) {
 }

代码示例来源:origin: Activiti/Activiti

public static String moveDown(XMLStreamReader xtr) {
 try {
  while (xtr.hasNext()) {
   int event = xtr.next();
   switch (event) {
   case XMLStreamConstants.END_DOCUMENT:
    return null;
   case XMLStreamConstants.START_ELEMENT:
    return xtr.getLocalName();
   case XMLStreamConstants.END_ELEMENT:
    return null;
   }
  }
 } catch (Exception e) {
  LOGGER.warn("Error while moving down in XML document", e);
 }
 return null;
}

代码示例来源:origin: kiegroup/jbpm

private String getJndiNameFromPersistenceXml() throws XMLStreamException {
    XMLInputFactory factory = XMLInputFactory.newInstance();
    InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("META-INF/persistence.xml");
    XMLStreamReader reader = factory.createXMLStreamReader(is);
    while (reader.hasNext()) {
      int event = reader.next();
      if (event == XMLStreamConstants.START_ELEMENT && "jta-data-source".equals(reader.getLocalName())) {
        return reader.getElementText();
      }
    }
    return null;

  }
}

代码示例来源:origin: Activiti/Activiti

protected void parseChildElements(XMLStreamReader xtr, BaseElement parentElement, BpmnModel model, BaseChildElementParser parser) throws Exception {
 boolean readyWithChildElements = false;
 while (!readyWithChildElements  && xtr.hasNext()) {
  xtr.next();
  if (xtr.isStartElement()) {
   if (parser.getElementName().equals(xtr.getLocalName())) {
    parser.parseChildElement(xtr, parentElement, model);
   }
  } else if (xtr.isEndElement() && getElementName().equalsIgnoreCase(xtr.getLocalName())) {
   readyWithChildElements = true;
  }
 }
}

代码示例来源:origin: org.jdom/jdom

private List<Content> processFragments(JDOMFactory factory, XMLStreamReader stream, StAXFilter filter) throws JDOMException {
  int state = stream.getEventType();
    while (stream.hasNext() && (state = stream.next()) != END_DOCUMENT) {
      switch (state) {
        case START_DOCUMENT:
            depth++;
            while (depth > back && stream.hasNext()) {
              state = stream.next();
              if (state == START_ELEMENT) {
                depth++;
          if (filter.includeEntityRef(depth, stream.getLocalName())) {
            ret.add(factory.entityRef(stream.getLocalName()));
          throw new JDOMException("Unexpected XMLStream event " + stream.getEventType());

代码示例来源:origin: Activiti/Activiti

public static ExtensionElement parseExtensionElement(XMLStreamReader xtr) throws Exception {
 ExtensionElement extensionElement = new ExtensionElement();
 extensionElement.setName(xtr.getLocalName());
 if (StringUtils.isNotEmpty(xtr.getNamespaceURI())) {
  extensionElement.setNamespace(xtr.getNamespaceURI());
 for (int i = 0; i < xtr.getAttributeCount(); i++) {
  ExtensionAttribute extensionAttribute = new ExtensionAttribute();
  extensionAttribute.setName(xtr.getAttributeLocalName(i));
  extensionAttribute.setValue(xtr.getAttributeValue(i));
  if (StringUtils.isNotEmpty(xtr.getAttributeNamespace(i))) {
   extensionAttribute.setNamespace(xtr.getAttributeNamespace(i));
 while (!readyWithExtensionElement && xtr.hasNext()) {
  xtr.next();
  if (xtr.isCharacters() || XMLStreamReader.CDATA == xtr.getEventType()) {
   if (StringUtils.isNotEmpty(xtr.getText().trim())) {
    extensionElement.setElementText(xtr.getText().trim());
  } else if (xtr.isStartElement()) {
   ExtensionElement childExtensionElement = parseExtensionElement(xtr);
   extensionElement.addChildElement(childExtensionElement);
  } else if (xtr.isEndElement() && extensionElement.getName().equalsIgnoreCase(xtr.getLocalName())) {
   readyWithExtensionElement = true;

代码示例来源:origin: spring-projects/spring-framework

boolean documentEnded = false;
int elementDepth = 0;
int eventType = this.reader.getEventType();
while (true) {
  if (eventType != XMLStreamConstants.START_DOCUMENT && eventType != XMLStreamConstants.END_DOCUMENT &&
      break;
  if (this.reader.hasNext() && elementDepth >= 0) {
    eventType = this.reader.next();

代码示例来源:origin: org.jdom/jdom

try {
      stream.next();
      return emt;
      stream.next();
      return dt;
      stream.next();
      return cd;
    case CHARACTERS:
      Content txt = factory.text(stream.getText());
      stream.next();
      return txt;
      stream.next();
      return comment;
      Content er = factory.entityRef(stream.getLocalName());
      stream.next();
      return er;
      Content pi = factory.processingInstruction(
          stream.getPITarget(), stream.getPIData());
      stream.next();
      return pi;

代码示例来源:origin: stackoverflow.com

this.clazz = clazz;
this.unmarshaller = JAXBContext.newInstance(clazz).createUnmarshaller();
this.reader = XMLInputFactory.newInstance().createXMLStreamReader(stream);
return reader.hasNext();
int eventType = reader.getEventType();
  eventType = reader.next();

代码示例来源:origin: stackoverflow.com

XMLInputFactory inputFactory = XMLInputFactory.newInstance();
InputStream in = new FileInputStream("book.xml");
XMLStreamReader streamReader = inputFactory.createXMLStreamReader(in);
while (streamReader.hasNext()) {
  if (streamReader.isStartElement()) {
    switch (streamReader.getLocalName()) {
    case "first": {
      System.out.print("First Name : ");
  streamReader.next();

代码示例来源:origin: graphhopper/graphhopper

private ReaderElement getNextXML() throws XMLStreamException {
  int event = parser.next();
  if (fileheader != null) {
    ReaderElement copyfileheader = fileheader;
      String idStr = parser.getAttributeValue(null, "id");
      if (idStr != null) {
        String name = parser.getLocalName();
        long id = 0;
        switch (name.charAt(0)) {
    event = parser.next();

代码示例来源:origin: wildfly/wildfly

private void consumeContent(final XMLStreamReader reader) throws XMLStreamException {
  while (reader.hasNext()) {
    switch (reader.next()) {
      case START_ELEMENT: {
        consumeContent(reader);
        break;
      }
      case END_ELEMENT: {
        return;
      }
    }
  }
}

代码示例来源:origin: com.sun.xml.bind/jaxb-impl

int event = staxStreamReader.getEventType();
if(event == XMLStreamConstants.START_DOCUMENT) {
  while( !staxStreamReader.isStartElement() )
    event = staxStreamReader.next();
  event=staxStreamReader.next();
staxStreamReader.next();    // move beyond the end tag.

代码示例来源:origin: geotools/geotools

Integer next = xml.hasNext() ? xml.next() : null;
while (next != null) {
  context.reset();
      if (root) {
        String ver = xml.getAttributeValue(null, "version");
        if (ver != null) {
          context.version(ver);
    next = xml.hasNext() ? xml.next() : null;

代码示例来源:origin: stackoverflow.com

int event = reader.next();
if(event == XMLStreamConstants.START_ELEMENT) {
  level++;
  if(reader.getLocalName().equals("FirstName")) {
  } else if(reader.getLocalName().equals("LastName")) {

代码示例来源:origin: graphhopper/graphhopper

private void openXMLStream(InputStream in)
    throws XMLStreamException {
  XMLInputFactory factory = XMLInputFactory.newInstance();
  parser = factory.createXMLStreamReader(in, "UTF-8");
  int event = parser.next();
  if (event != XMLStreamConstants.START_ELEMENT || !parser.getLocalName().equalsIgnoreCase("osm")) {
    throw new IllegalArgumentException("File is not a valid OSM stream");
  }
  // See https://wiki.openstreetmap.org/wiki/PBF_Format#Definition_of_the_OSMHeader_fileblock
  String timestamp = parser.getAttributeValue(null, "osmosis_replication_timestamp");
  if (timestamp == null)
    timestamp = parser.getAttributeValue(null, "timestamp");
  if (timestamp != null) {
    try {
      fileheader = new OSMFileHeader();
      fileheader.setTag("timestamp", timestamp);
    } catch (Exception ex) {
    }
  }
  eof = false;
}

代码示例来源:origin: javamelody/javamelody

/**
 * Scan xml for tag child of the current element
 *
 * @param reader reader, must be at "start element" @nonnull
 * @param tagName name of child tag to find @nonnull
 * @return if found tag
 * @throws XMLStreamException on error
 */
static boolean scanForChildTag(XMLStreamReader reader, String tagName)
    throws XMLStreamException {
  assert reader.isStartElement();
  int level = -1;
  while (reader.hasNext()) {
    //keep track of level so we only search children, not descendants
    if (reader.isStartElement()) {
      level++;
    } else if (reader.isEndElement()) {
      level--;
    }
    if (level < 0) {
      //end parent tag - no more children
      break;
    }
    reader.next();
    if (level == 0 && reader.isStartElement() && reader.getLocalName().equals(tagName)) {
      return true; //found
    }
  }
  return false; //got to end of parent element and not found
}

代码示例来源:origin: org.jdom/jdom

throws XMLStreamException, JDOMException {
if (START_ELEMENT != reader.getEventType()) {
  throw new JDOMException("JDOM requires that the XMLStreamReader " +
      "is at the START_ELEMENT state when retrieving an " +
int depth = topdepth + 1;
String text = null;
while (depth > topdepth && reader.hasNext()) {
  switch(reader.next()) {
    case START_ELEMENT:
      QName qn = reader.getName();
        depth++;
        int state = 0;
        while (depth > edepth && reader.hasNext() && 
            (state = reader.next()) != END_DOCUMENT) {
          if (state == START_ELEMENT) {
            depth++;
      if (!filter.pruneEntityRef(depth, reader.getLocalName())) {
        current.addContent(factory.entityRef(reader.getLocalName()));
      throw new JDOMException("Unexpected XMLStream event " + reader.getEventType());

代码示例来源:origin: org.springframework/spring-core

boolean documentEnded = false;
int elementDepth = 0;
int eventType = this.reader.getEventType();
while (true) {
  if (eventType != XMLStreamConstants.START_DOCUMENT && eventType != XMLStreamConstants.END_DOCUMENT &&
      break;
  if (this.reader.hasNext() && elementDepth >= 0) {
    eventType = this.reader.next();

相关文章

微信公众号

最新文章

更多