javax.xml.stream.XMLEventReader#nextEvent ( )源码实例Demo

下面列出了javax.xml.stream.XMLEventReader#nextEvent ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: olingo-odata4   文件: AtomGeoValueDeserializer.java
private MultiPolygon multiPolygon(final XMLEventReader reader, final StartElement start,
    final EdmPrimitiveTypeKind type, final SRID srid) throws XMLStreamException {

  final List<Polygon> polygons = new ArrayList<>();

  boolean foundEndProperty = false;
  while (reader.hasNext() && !foundEndProperty) {
    final XMLEvent event = reader.nextEvent();

    if (event.isStartElement() && event.asStartElement().getName().equals(Constants.QNAME_POLYGON)) {
      polygons.add(polygon(reader, event.asStartElement(), type, null));
    }

    if (event.isEndElement() && start.getName().equals(event.asEndElement().getName())) {
      foundEndProperty = true;
    }
  }

  return new MultiPolygon(GeoUtils.getDimension(type), srid, polygons);
}
 
源代码2 项目: WikipediaEntities   文件: ParseWikipedia.java
private String parseTextContents(XMLEventReader eventReader) throws XMLStreamException {
  // Chances are that we'll only need one string.
  String ret = null;
  buf.setLength(0);
  while(eventReader.hasNext()) {
    XMLEvent event = eventReader.nextEvent();
    if(event.isEndElement())
      break;
    if(event.isCharacters()) {
      if(ret == null)
        ret = event.asCharacters().getData();
      else { // Need to use the buffer
        if(buf.length() == 0)
          buf.append(ret);
        buf.append(event.asCharacters().getData());
      }
    }
  }
  if(buf.length() > 0) {
    ret = buf.toString();
  }
  return ret;
}
 
源代码3 项目: zap-extensions   文件: UploadActionListener.java
public static Boolean reportIsEmpty(File reportFile) throws IOException, XMLStreamException {
	BufferedReader br = Files.newBufferedReader(reportFile.toPath());
	try {
		XMLEventReader reader = xmlInputFactory.createXMLEventReader(br);

		while(reader.hasNext()) {
			XMLEvent event = reader.nextEvent();
			if(event.isStartElement() && !event.asStartElement().getName().getLocalPart().equals("OWASPZAPReport")) {
				return false;
			}
		}
	} finally {
		br.close();
	}
	return true;
}
 
源代码4 项目: netbeans   文件: RestXMLResponseParser.java
private List<MessagePart> parseChildrenMessages(XMLEventReader reader) throws XMLStreamException {
    ArrayList<MessagePart> messages = new ArrayList<>();
    int level = 0;
    while (reader.hasNext() && (level > -1)) {
        XMLEvent event = reader.nextEvent();
        if (event.isStartElement()) {
            if (level++ == 1) {
                StartElement element = event.asStartElement();
                String elementName = element.getName().getLocalPart();
                if (MAP.equals(elementName)) {
                    messages.add(parseChildMessage(reader));
                    level--;
                }
            }
        } else {
            level--;
        }

    }
    return messages;
}
 
源代码5 项目: olingo-odata4   文件: ODataXmlDeserializer.java
private void collection(final Valuable valuable, final XMLEventReader reader, final StartElement start,
    final EdmType edmType, final boolean isNullable, final Integer maxLength, final Integer precision,
    final Integer scale, final boolean isUnicode) throws XMLStreamException, EdmPrimitiveTypeException,
    DeserializerException {

  List<Object> values = new ArrayList<Object>();
  boolean foundEndProperty = false;
  while (reader.hasNext() && !foundEndProperty) {
    final XMLEvent event = reader.nextEvent();
    if (event.isStartElement()) {
      if (edmType instanceof EdmPrimitiveType) {
        values.add(primitive(reader, event.asStartElement(), edmType, isNullable,
            maxLength, precision, scale, isUnicode));
      } else if (edmType instanceof EdmComplexType) {
        values.add(complex(reader, event.asStartElement(), (EdmComplexType) edmType));
      }
      // do not add null or empty values
    }

    if (event.isEndElement() && start.getName().equals(event.asEndElement().getName())) {
      foundEndProperty = true;
    }
  }
  valuable.setValue(getValueType(edmType, true), values);
}
 
源代码6 项目: olingo-odata4   文件: AtomDeserializer.java
private void common(final XMLEventReader reader, final StartElement start,
    final AbstractODataObject object, final String key) throws XMLStreamException {

  boolean foundEndElement = false;
  while (reader.hasNext() && !foundEndElement) {
    final XMLEvent event = reader.nextEvent();

    if (event.isCharacters() && !event.asCharacters().isWhiteSpace()) {
      object.setCommonProperty(key, event.asCharacters().getData());
    }

    if (event.isEndElement() && start.getName().equals(event.asEndElement().getName())) {
      foundEndElement = true;
    }
  }
}
 
private void processStartTag(final StartElement element, final StartElement parent,
        final XMLEventReader reader, final Map<URI, Policy> map)
        throws PolicyException {
    try {
        final QName name = element.getName();
        if (parent == null) {
            if (!name.equals(POLICIES)) {
                throw LOGGER.logSevereException(new PolicyException(LocalizationMessages.WSP_0089_EXPECTED_ELEMENT("<Policies>", name, element.getLocation())));
            }
        } else {
            final QName parentName = parent.getName();
            if (parentName.equals(POLICIES)) {
                if (!name.equals(POLICY_ATTACHMENT)) {
                    throw LOGGER.logSevereException(new PolicyException(LocalizationMessages.WSP_0089_EXPECTED_ELEMENT("<PolicyAttachment>", name, element.getLocation())));
                }
            } else if (parentName.equals(POLICY_ATTACHMENT)) {
                if (name.equals(POLICY)) {
                    readPolicy(reader);
                    return;
                } else if (!name.equals(APPLIES_TO)) {
                    throw LOGGER.logSevereException(new PolicyException(LocalizationMessages.WSP_0089_EXPECTED_ELEMENT("<AppliesTo> or <Policy>", name, element.getLocation())));
                }
            } else if (parentName.equals(APPLIES_TO)) {
                if (!name.equals(URI)) {
                    throw LOGGER.logSevereException(new PolicyException(LocalizationMessages.WSP_0089_EXPECTED_ELEMENT("<URI>", name, element.getLocation())));
                }
            } else {
                throw LOGGER.logSevereException(new PolicyException(LocalizationMessages.WSP_0090_UNEXPECTED_ELEMENT(name, element.getLocation())));
            }
        }
        reader.nextEvent();
        this.unmarshal(reader, element);
    } catch (XMLStreamException e) {
        throw LOGGER.logSevereException(new PolicyException(LocalizationMessages.WSP_0088_FAILED_PARSE(element.getLocation()), e));
    }
}
 
源代码8 项目: openjdk-jdk8u   文件: SkipDTDTest.java
public void runReader(XMLInputFactory factory, int offset) throws XMLStreamException {
    StringReader stringReader = new StringReader(createXMLDocument(offset));
    XMLEventReader reader = factory.createXMLEventReader(stringReader);

    while (reader.hasNext()) {
        XMLEvent event = reader.nextEvent();
        System.out.println("Event Type: " + event.getEventType());
    }
}
 
源代码9 项目: olingo-odata4   文件: AtomDeserializer.java
private PropertyType guessPropertyType(final XMLEventReader reader, final EdmTypeInfo typeInfo)
    throws XMLStreamException {

  XMLEvent child = null;
  while (reader.hasNext() && child == null) {
    final XMLEvent event = reader.peek();
    if (event.isCharacters() && event.asCharacters().isWhiteSpace()) {
      reader.nextEvent();
    } else {
      child = event;
    }
  }

  final PropertyType type;
  if (child == null) {
    type = typeInfo == null || typeInfo.isPrimitiveType() ? PropertyType.PRIMITIVE : PropertyType.ENUM;
  } else {
    if (child.isStartElement()) {
      if (Constants.NS_GML.equals(child.asStartElement().getName().getNamespaceURI())) {
        type = PropertyType.PRIMITIVE;
      } else if (elementQName.equals(child.asStartElement().getName())) {
        type = PropertyType.COLLECTION;
      } else {
        type = PropertyType.COMPLEX;
      }
    } else if (child.isCharacters()) {
      type = typeInfo == null || typeInfo.isPrimitiveType()
          ? PropertyType.PRIMITIVE
              : PropertyType.ENUM;
    } else {
      type = PropertyType.EMPTY;
    }
  }

  return type;
}
 
源代码10 项目: jdk8u60   文件: ExternalAttachmentsUnmarshaller.java
private Map<URI, Policy> unmarshal(final XMLEventReader reader, final StartElement parentElement) throws PolicyException {
    XMLEvent event = null;
    while (reader.hasNext()) {
        try {
            event = reader.peek();
            switch (event.getEventType()) {
                case XMLStreamConstants.START_DOCUMENT:
                case XMLStreamConstants.COMMENT:
                    reader.nextEvent();
                    break;

                case XMLStreamConstants.CHARACTERS:
                    processCharacters(event.asCharacters(), parentElement, map);
                    reader.nextEvent();
                    break;

                case XMLStreamConstants.END_ELEMENT:
                    processEndTag(event.asEndElement(), parentElement);
                    reader.nextEvent();
                    return map;

                case XMLStreamConstants.START_ELEMENT:
                    final StartElement element = event.asStartElement();
                    processStartTag(element, parentElement, reader, map);
                    break;

                case XMLStreamConstants.END_DOCUMENT:
                    return map;

                default:
                    throw LOGGER.logSevereException(new PolicyException(LocalizationMessages.WSP_0087_UNKNOWN_EVENT(event)));
            }
        } catch (XMLStreamException e) {
            final Location location = event == null ? null : event.getLocation();
            throw LOGGER.logSevereException(new PolicyException(LocalizationMessages.WSP_0088_FAILED_PARSE(location)), e);
        }
    }
    return map;
}
 
private Map<URI, Policy> unmarshal(final XMLEventReader reader, final StartElement parentElement) throws PolicyException {
    XMLEvent event = null;
    while (reader.hasNext()) {
        try {
            event = reader.peek();
            switch (event.getEventType()) {
                case XMLStreamConstants.START_DOCUMENT:
                case XMLStreamConstants.COMMENT:
                    reader.nextEvent();
                    break;

                case XMLStreamConstants.CHARACTERS:
                    processCharacters(event.asCharacters(), parentElement, map);
                    reader.nextEvent();
                    break;

                case XMLStreamConstants.END_ELEMENT:
                    processEndTag(event.asEndElement(), parentElement);
                    reader.nextEvent();
                    return map;

                case XMLStreamConstants.START_ELEMENT:
                    final StartElement element = event.asStartElement();
                    processStartTag(element, parentElement, reader, map);
                    break;

                case XMLStreamConstants.END_DOCUMENT:
                    return map;

                default:
                    throw LOGGER.logSevereException(new PolicyException(LocalizationMessages.WSP_0087_UNKNOWN_EVENT(event)));
            }
        } catch (XMLStreamException e) {
            final Location location = event == null ? null : event.getLocation();
            throw LOGGER.logSevereException(new PolicyException(LocalizationMessages.WSP_0088_FAILED_PARSE(location)), e);
        }
    }
    return map;
}
 
源代码12 项目: raccoon4   文件: Parser.java
private String getCharacterData(XMLEvent event, XMLEventReader eventReader)
		throws XMLStreamException {
	String result = "";
	event = eventReader.nextEvent();
	if (event instanceof Characters) {
		result = event.asCharacters().getData();
	}
	return result;
}
 
private String unmarshalNodeContent(final NamespaceVersion nsVersion, final ModelNode node, final QName nodeElementName, final XMLEventReader reader) throws PolicyException {
    StringBuilder valueBuffer = null;

    loop:
    while (reader.hasNext()) {
        try {
            final XMLEvent xmlParserEvent = reader.nextEvent();
            switch (xmlParserEvent.getEventType()) {
                case XMLStreamConstants.COMMENT:
                    break; // skipping the comments
                case XMLStreamConstants.CHARACTERS:
                    valueBuffer = processCharacters(node.getType(), xmlParserEvent.asCharacters(), valueBuffer);
                    break;
                case XMLStreamConstants.END_ELEMENT:
                    checkEndTagName(nodeElementName, xmlParserEvent.asEndElement());
                    break loop; // data exctraction for currently processed policy node is done
                case XMLStreamConstants.START_ELEMENT:
                    final StartElement childElement = xmlParserEvent.asStartElement();

                    ModelNode childNode = addNewChildNode(nsVersion, node, childElement);
                    String value = unmarshalNodeContent(nsVersion, childNode, childElement.getName(), reader);

                    if (childNode.isDomainSpecific()) {
                        parseAssertionData(nsVersion, value, childNode, childElement);
                    }
                    break;
                default:
                    throw LOGGER.logSevereException(new PolicyException(LocalizationMessages.WSP_0011_UNABLE_TO_UNMARSHALL_POLICY_XML_ELEM_EXPECTED()));
            }
        } catch (XMLStreamException e) {
            throw LOGGER.logSevereException(new PolicyException(LocalizationMessages.WSP_0068_FAILED_TO_UNMARSHALL_POLICY_EXPRESSION(), e));
        }
    }

    return (valueBuffer == null) ? null : valueBuffer.toString().trim();
}
 
源代码14 项目: bazel   文件: XmlResourceValues.java
@Nullable
static StartElement findNextStart(XMLEventReader eventReader) throws XMLStreamException {
  while (eventReader.hasNext()) {
    XMLEvent event = eventReader.nextEvent();
    if (event.isStartElement()) {
      return event.asStartElement();
    }
  }
  return null;
}
 
源代码15 项目: jdk8u_jdk   文件: SkipDTDTest.java
public void runReader(XMLInputFactory factory, int offset) throws XMLStreamException {
    StringReader stringReader = new StringReader(createXMLDocument(offset));
    XMLEventReader reader = factory.createXMLEventReader(stringReader);

    while (reader.hasNext()) {
        XMLEvent event = reader.nextEvent();
        System.out.println("Event Type: " + event.getEventType());
    }
}
 
源代码16 项目: lams   文件: ApplicationPolicyParser.java
@SuppressWarnings("unchecked")
public List<ApplicationPolicy> parse(XMLEventReader xmlEventReader) throws XMLStreamException
{
   List<ApplicationPolicy> policies = new ArrayList<ApplicationPolicy>();
   while(xmlEventReader.hasNext())
   { 
       XMLEvent xmlEvent = xmlEventReader.nextEvent();
       int eventType = xmlEvent.getEventType();
       switch(eventType)
       {
           case XMLStreamConstants.START_ELEMENT:  
              StartElement appPolicyElement = (StartElement) xmlEvent;
              String elementName = StaxParserUtil.getStartElementName(appPolicyElement);
              if("application-policy".equals(elementName) == false)
                 throw StaxParserUtil.unexpectedElement(elementName, xmlEvent);
              //We got the application-policy element. It just has one attribute "name"
              Iterator<Attribute> attrs = appPolicyElement.getAttributes(); 
              String extendsName = null;
              String appPolicyName = null;
              
              while(attrs.hasNext())
              {
                 Attribute attribute = attrs.next();
                 QName attributeName = attribute.getName();
                 String attributeValue = StaxParserUtil.getAttributeValue(attribute);
                 
                 if("name".equals(attributeName.getLocalPart()))
                    appPolicyName = attributeValue; 
                 else if("extends".equals(attributeName.getLocalPart()))
                    extendsName = attributeValue;  
              }

              ApplicationPolicy applicationPolicy = new ApplicationPolicy(appPolicyName); 
              if(extendsName != null)
                 applicationPolicy.setBaseApplicationPolicyName(extendsName);
               
              route(xmlEventReader, applicationPolicy);
              policies.add(applicationPolicy); 
       } 
   }
   return policies;
}
 
源代码17 项目: datacollector   文件: StreamingXmlParser.java
XMLEvent read(XMLEventReader reader) throws XMLStreamException  {
  skipIgnorable(reader);
  return reader.nextEvent();
}
 
源代码18 项目: java-client-api   文件: SearchHandle.java
private void collectResult(XMLEventReader reader, StartElement element)
  throws XMLStreamException
{
  QName snippetName       = new QName(SEARCH_NS, "snippet");
  QName extractedName     = new QName(SEARCH_NS, "extracted");
  QName extractedNoneName = new QName(SEARCH_NS, "extracted-none");
  QName metadataName      = new QName(SEARCH_NS, "metadata");
  QName similarName       = new QName(SEARCH_NS, "similar");
  QName relevanceInfoName = new QName(QUERY_NS,  "relevance-info");

  List<XMLEvent> eventBuf = new ArrayList<>();

  QName resultName = element.getName();
  events: while (reader.hasNext()) {
    XMLEvent event = reader.nextEvent();

    int eventType = event.getEventType();
    eventType: switch (eventType) {
      case XMLStreamConstants.START_ELEMENT:
        StartElement startElement = event.asStartElement();
        QName startName = startElement.getName();
        if (snippetName.equals(startName)) {
          handleSnippet(reader, startElement);
        } else if (extractedName.equals(startName)) {
          handleExtracted(reader, startElement);
        } else if (extractedNoneName.equals(startName)) {
          handleExtracted(reader, startElement);
        } else if (metadataName.equals(startName)) {
          handleMetadata(reader, startElement);
        } else if (similarName.equals(startName)) {
          handleSimilar(reader, startElement);
        } else if (relevanceInfoName.equals(startName)) {
          handleRelevanceInfo(reader, startElement);
        } else {
          break eventType;
        }

        // found result substructure, so cannot be a raw snippet
        if (eventBuf != null) {
          eventBuf = null;
        }

        break eventType;
      case XMLStreamConstants.END_ELEMENT:
        if (resultName.equals(event.asEndElement().getName())) {
          break events;
        }
        break eventType;
    }

    // buffer candidates for a raw snippet
    if (eventBuf != null) {
      eventBuf.add(event);
    }
  }

  // capture raw snippet
  if (eventBuf != null) {
    int first = tempEvents.size();
    tempEvents.addAll(eventBuf);
    addSnippet(new EventRange(first, tempEvents.size()));
  }
}
 
源代码19 项目: TencentKona-8   文件: StAXSchemaParser.java
public void parse(XMLEventReader input) throws XMLStreamException, XNIException {
    XMLEvent currentEvent = input.peek();
    if (currentEvent != null) {
        int eventType = currentEvent.getEventType();
        if (eventType != XMLStreamConstants.START_DOCUMENT &&
            eventType != XMLStreamConstants.START_ELEMENT) {
            throw new XMLStreamException();
        }
        fLocationWrapper.setLocation(currentEvent.getLocation());
        fSchemaDOMParser.startDocument(fLocationWrapper, null, fNamespaceContext, null);
        loop: while (input.hasNext()) {
            currentEvent = input.nextEvent();
            eventType = currentEvent.getEventType();
            switch (eventType) {
            case XMLStreamConstants.START_ELEMENT:
                ++fDepth;
                StartElement start = currentEvent.asStartElement();
                fillQName(fElementQName, start.getName());
                fLocationWrapper.setLocation(start.getLocation());
                fNamespaceContext.setNamespaceContext(start.getNamespaceContext());
                fillXMLAttributes(start);
                fillDeclaredPrefixes(start);
                addNamespaceDeclarations();
                fNamespaceContext.pushContext();
                fSchemaDOMParser.startElement(fElementQName, fAttributes, null);
                break;
            case XMLStreamConstants.END_ELEMENT:
                EndElement end = currentEvent.asEndElement();
                fillQName(fElementQName, end.getName());
                fillDeclaredPrefixes(end);
                fLocationWrapper.setLocation(end.getLocation());
                fSchemaDOMParser.endElement(fElementQName, null);
                fNamespaceContext.popContext();
                --fDepth;
                if (fDepth <= 0) {
                    break loop;
                }
                break;
            case XMLStreamConstants.CHARACTERS:
                sendCharactersToSchemaParser(currentEvent.asCharacters().getData(), false);
                break;
            case XMLStreamConstants.SPACE:
                sendCharactersToSchemaParser(currentEvent.asCharacters().getData(), true);
                break;
            case XMLStreamConstants.CDATA:
                fSchemaDOMParser.startCDATA(null);
                sendCharactersToSchemaParser(currentEvent.asCharacters().getData(), false);
                fSchemaDOMParser.endCDATA(null);
                break;
            case XMLStreamConstants.PROCESSING_INSTRUCTION:
                ProcessingInstruction pi = (ProcessingInstruction)currentEvent;
                fillProcessingInstruction(pi.getData());
                fSchemaDOMParser.processingInstruction(pi.getTarget(), fTempString, null);
                break;
            case XMLStreamConstants.DTD:
                /* There shouldn't be a DTD in the schema */
                break;
            case XMLStreamConstants.ENTITY_REFERENCE:
                /* Not needed for schemas */
                break;
            case XMLStreamConstants.COMMENT:
                /* No point in sending comments */
                break;
            case XMLStreamConstants.START_DOCUMENT:
                fDepth++;
                /* We automatically call startDocument before the loop */
                break;
            case XMLStreamConstants.END_DOCUMENT:
                /* We automatically call endDocument after the loop */
                break;
            }
        }
        fLocationWrapper.setLocation(null);
        fNamespaceContext.setNamespaceContext(null);
        fSchemaDOMParser.endDocument(null);
    }
}
 
源代码20 项目: olingo-odata4   文件: XMLUtilities.java
@Override
public InputStream selectEntity(final InputStream entity, final String[] propertyNames) throws Exception {
  final XMLEventReader reader = getEventReader(entity);

  final ByteArrayOutputStream bos = new ByteArrayOutputStream();
  final XMLEventWriter writer = getEventWriter(bos);

  final List<String> found = new ArrayList<String>(Arrays.asList(propertyNames));

  boolean inProperties = false;
  boolean writeCurrent = true;
  Boolean writeNext = null;
  String currentName = null;

  final List<String> fieldToBeSaved = new ArrayList<String>(Arrays.asList(propertyNames));

  while (reader.hasNext()) {
    final XMLEvent event = reader.nextEvent();
    if (event.getEventType() == XMLStreamConstants.START_ELEMENT
        && Constants.get(ConstantKey.LINK).equals(event.asStartElement().getName().getLocalPart())
        && !fieldToBeSaved.contains(
            event.asStartElement().getAttributeByName(new QName("title")).getValue())
        && !"edit".equals(event.asStartElement().getAttributeByName(new QName("rel")).getValue())) {
      writeCurrent = false;
    } else if (event.getEventType() == XMLStreamConstants.END_ELEMENT
        && Constants.get(ConstantKey.LINK).equals(event.asEndElement().getName().getLocalPart())) {
      writeNext = true;
    } else if (event.getEventType() == XMLStreamConstants.START_ELEMENT
        && (Constants.get(ConstantKey.PROPERTIES)).equals(
            event.asStartElement().getName().getLocalPart())) {
      writeCurrent = true;
      writeNext = false;
      inProperties = true;
    } else if (event.getEventType() == XMLStreamConstants.END_ELEMENT
        && (Constants.get(ConstantKey.PROPERTIES)).equals(
            event.asEndElement().getName().getLocalPart())) {
      writeCurrent = true;
    } else if (inProperties) {
      if (event.getEventType() == XMLStreamConstants.START_ELEMENT) {
        final String elementName = event.asStartElement().getName().getLocalPart();

        for (String propertyName : propertyNames) {
          if ((Constants.get(ConstantKey.ATOM_PROPERTY_PREFIX) + propertyName.trim()).equals(elementName)) {
            writeCurrent = true;
            found.remove(propertyName);
            currentName = propertyName;
          }
        }

      } else if (event.getEventType() == XMLStreamConstants.END_ELEMENT
          && StringUtils.isNotBlank(currentName)
          && (Constants.get(ConstantKey.ATOM_PROPERTY_PREFIX) + currentName.trim()).equals(
              event.asEndElement().getName().getLocalPart())) {
        writeNext = false;
        currentName = null;
      }

    }

    if (writeCurrent) {
      writer.add(event);
    }

    if (writeNext != null) {
      writeCurrent = writeNext;
      writeNext = null;
    }
  }

  writer.flush();
  writer.close();
  reader.close();
  IOUtils.closeQuietly(entity);

  // Do not raise any exception in order to support FC properties as well
  // if (!found.isEmpty()) {
  // throw new Exception(String.format("Could not find a properties '%s'", found));
  // }
  return new ByteArrayInputStream(bos.toByteArray());
}