javax.xml.stream.events.XMLEvent#asStartElement ( )源码实例Demo

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

源代码1 项目: powsybl-core   文件: CimAnonymizer.java
private void addRdfIdValues(InputStream is, Set<String> rdfIdValues) throws XMLStreamException {
    // memoize RDF ID values of the document
    XMLEventReader eventReader = xmlStaxContext.inputFactory.createXMLEventReader(is);
    while (eventReader.hasNext()) {
        XMLEvent event = eventReader.nextEvent();
        if (event.isStartElement()) {
            StartElement startElement = event.asStartElement();
            Iterator it = startElement.getAttributes();
            while (it.hasNext()) {
                Attribute attribute = (Attribute) it.next();
                QName name = attribute.getName();
                if (RDF_ID.equals(name)) {
                    rdfIdValues.add(attribute.getValue());
                }
            }
        }
    }
    eventReader.close();
}
 
源代码2 项目: vespa   文件: VespaRecordWriter.java
private String findDocIdFromXml(String xml) {
    try {
        XMLEventReader eventReader = XMLInputFactory.newInstance().createXMLEventReader(new StringReader(xml));
        while (eventReader.hasNext()) {
            XMLEvent event = eventReader.nextEvent();
            if (event.getEventType() == XMLEvent.START_ELEMENT) {
                StartElement element = event.asStartElement();
                String elementName = element.getName().getLocalPart();
                if (VespaDocumentOperation.Operation.valid(elementName)) {
                    return element.getAttributeByName(QName.valueOf("documentid")).getValue();
                }
            }
        }
    } catch (XMLStreamException | FactoryConfigurationError e) {
        // as json dude does
        return null;
    }
    return null;
}
 
源代码3 项目: ballerina-integrator   文件: ConfigReader.java
/**
 * Process XML as a stream of events
 *
 * @param inputStream
 */
public void readXML(InputStream inputStream) {
    XMLInputFactory xmlInputFactory = XMLInputFactory.newInstance();
    try {
        XMLEventReader eventReader = xmlInputFactory.createXMLEventReader(inputStream);

        while (eventReader.hasNext()) {
            XMLEvent xmlEvent = eventReader.nextEvent();
            switch (xmlEvent.getEventType()) {
            case XMLStreamConstants.START_ELEMENT:
                StartElement startElement = xmlEvent.asStartElement();
                checkFlowState(getElementOrAttributeName(startElement.getName()), true);
                loadIntermediateMuleObjects(startElement);
                break;

            case XMLStreamConstants.CHARACTERS:
                break;

            case XMLStreamConstants.END_ELEMENT:
                EndElement endElement = xmlEvent.asEndElement();
                checkFlowState(getElementOrAttributeName(endElement.getName()), false);
                break;

            default:
                break;
            }
        }
    } catch (XMLStreamException e) {
        logger.error(e.getMessage(), e);
    }
}
 
/**
 * Recursively processes parsing of the configuration XML file with StAX parser.
 * Configuration XML has recursive tree structure
 * where module tags are nested into other module tags, also
 * duplicates of the same modules may be present in one configuration,
 * so there are no other option but to parse configuration
 * into the same tree structure.
 *
 * @param reader
 *        StAX parser interface.
 * @param parent
 *        parent module tag.
 * @throws XMLStreamException
 *         on internal StAX parser error.
 */
private static void parseModule(XMLEventReader reader, ConfigurationModule parent)
        throws XMLStreamException {
    while (reader.hasNext()) {
        final XMLEvent event = reader.nextEvent();
        if (event.isStartElement()) {
            final StartElement startElement = event.asStartElement();
            final String startElementName = startElement.getName()
                    .getLocalPart();
            // module tag encounter
            if (startElementName.equals(MODULE_TAG)) {
                processModuleTag(reader, startElement, parent);
            }
            // property tag encounter
            else if (startElementName.equals(PROPERTY_TAG)) {
                processPropertyTag(startElement, parent);
            }
            // message tag encounter
            else if (startElementName.equals(MESSAGE_TAG)) {
                processMessageTag(startElement, parent);
            }
        }
        if (event.isEndElement()) {
            final EndElement endElement = event.asEndElement();
            if (endElement.getName().getLocalPart().equals(MODULE_TAG)) {
                // return from recursive method
                break;
            }
        }
    }
}
 
源代码5 项目: WikipediaEntities   文件: ParseWikipedia.java
private void parsePage(XMLEventReader eventReader) throws XMLStreamException, InterruptedException {
  String title = null, text = null, redirect = null;
  boolean skip = false;
  while(eventReader.hasNext()) {
    XMLEvent event = eventReader.nextEvent();
    if(event.isEndElement() && event.asEndElement().getName().getLocalPart() == "page") {
      break;
    }
    if(!skip && event.isStartElement()) {
      StartElement startElement = event.asStartElement();
      // Ignore non-main pages
      if(startElement.getName().getLocalPart() == "ns")
        skip |= !"0".equals(parseTextContents(eventReader));

      if(startElement.getName().getLocalPart() == "title")
        title = parseTextContents(eventReader);

      if(startElement.getName().getLocalPart() == "text")
        text = parseTextContents(eventReader);

      if(startElement.getName().getLocalPart() == "redirect")
        redirect = startElement.getAttributeByName(TITLEQNAME).getValue();
    }
  }
  // Post-process page.
  if(!skip && redirect == null && text == null && title != null)
    System.err.println("No redirect or text, but title: " + title);
  // Ignore non-main pages
  if(skip || title == null || text == null)
    return;
  queue.put(new Article(prefix, title, redirect, text));
  readprog.incrementAndLog();
}
 
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;
}
 
源代码7 项目: openjdk-8   文件: XmlPolicyModelUnmarshaller.java
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();
}
 
源代码8 项目: jdk8u60   文件: XmlPolicyModelUnmarshaller.java
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();
}
 
源代码9 项目: similarity   文件: SememeParser.java
/**
 * 文件加载义原
 */
private void load(InputStream inputStream) throws IOException {
    long time = System.currentTimeMillis();
    int count = 0;
    try {
        XMLInputFactory inputFactory = XMLInputFactory.newInstance();
        XMLEventReader xmlEventReader = inputFactory.createXMLEventReader(inputStream);

        while (xmlEventReader.hasNext()) {
            XMLEvent event = xmlEventReader.nextEvent();
            if (event.isStartElement()) {
                StartElement startElement = event.asStartElement();
                if (startElement.getName().toString().equals("sememe")) {
                    String cnWord = startElement.getAttributeByName(QName.valueOf("cn")).getValue();
                    String id = startElement.getAttributeByName(QName.valueOf("id")).getValue();
                    SEMEMES.put(cnWord, id);
                    count++;
                }
            }
        }
        inputStream.close();
    } catch (Exception e) {
        logger.error("xml err:" + e.toString());
        e.printStackTrace();
    }
    time = System.currentTimeMillis() - time;
    logger.info("complete! count num:" + count + ". time spend:" + time + "ms");
}
 
源代码10 项目: components   文件: StreamingWorkbookReader.java
void lookupSheetNames(InputStream workBookData) throws IOException, InvalidFormatException, XMLStreamException {
    sheetNames.clear();

    XMLEventReader parser = XMLInputFactory.newInstance().createXMLEventReader(workBookData);
    boolean parsingsSheets = false;
    while (parser.hasNext()) {
        XMLEvent event = parser.nextEvent();
        switch (event.getEventType()) {
        case XMLStreamConstants.START_ELEMENT:
            StartElement startElement = event.asStartElement();
            String tagLocalName = startElement.getName().getLocalPart();
            if ("sheets".equals(tagLocalName)) {
                parsingsSheets = true;
                continue;
            }
            if (parsingsSheets && "sheet".equals(tagLocalName)) {
                Attribute attribute = startElement.getAttributeByName(SHEET_NAME_ATT_QNAME);
                if (attribute != null) {
                    sheetNames.add(attribute.getValue());
                }
            }

            break;
        case XMLStreamConstants.END_ELEMENT:
            if ("sheets".equals(event.asEndElement().getName().getLocalPart())) {
                return;
            }
        }
    }
}
 
源代码11 项目: java-client-api   文件: SearchHandle.java
private void handleFacet(XMLEventReader reader, StartElement element)
  throws XMLStreamException
{
  if (tempFacets == null) {
    tempFacets = new LinkedHashMap<>();
  }

  String facetName = getAttribute(element, "name");

  List<FacetValue> values = new ArrayList<>();

  QName facetValuesName = new QName(SEARCH_NS, "facet-value");

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

    int eventType = event.getEventType();
    switch (eventType) {
      case XMLStreamConstants.START_ELEMENT:
        StartElement startElement = event.asStartElement();
        if (facetValuesName.equals(startElement.getName())) {
          values.add(handleFacetValue(reader, startElement));
        } else {
          logger.warn("Unexpected facet element "+startElement.getName().toString());
        }
        break;
      case XMLStreamConstants.END_ELEMENT:
        if (facetElementName.equals(event.asEndElement().getName())) {
          break events;
        }
        break;
    }
  }

  tempFacets.put(
    facetName,
    new FacetResultImpl(facetName,
      values.toArray(new FacetValue[values.size()])));
}
 
private boolean isStartTagWithName(@Nullable final XMLEvent tag, final String name) {
  if (tag != null && tag.getEventType() == START_ELEMENT) {
    StartElement startElement = tag.asStartElement();
    if (startElement.getName().getLocalPart().equals(name)) {
      return true;
    }
  }
  return false;
}
 
源代码13 项目: netbeans   文件: RestXMLResponseParser.java
private MessagePart parseChildMessage(XMLEventReader reader) throws XMLStreamException {
    MessagePart msg = new MessagePart();
    int level = 0;
    while (reader.hasNext() && (level > -1)) {
        XMLEvent event = reader.nextEvent();
        if (event.isStartElement()) {
            if (level++ == 0) {
                StartElement element = event.asStartElement();
                String elementName = element.getName().getLocalPart();
                if (ENTRY.equals(elementName)) {
                    Map<String, String> m = getMapEntry(element);
                    String key = m.get("key");
                    String value = m.get("value");
                    switch (key) {
                        case "message":
                            msg.setMessage(value);
                            break;
                        case "properties":
                            msg.props = parseProperties(reader);
                            break;
                        case "children":
                            msg.children = parseChildrenMessages(reader);
                            break;
                    }
                }
            }
        } else {
            level--;
        }
    }
    return msg;
}
 
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 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();
}
 
源代码16 项目: openjdk-jdk9   文件: DefaultAttributeTest.java
@Test
public void testEventReader() {
    try {
        XMLInputFactory ifac = XMLInputFactory.newInstance();
        XMLEventReader read = ifac.createXMLEventReader(this.getClass().getResource(INPUT_FILE).toExternalForm(),
                this.getClass().getResourceAsStream(INPUT_FILE));
        while (read.hasNext()) {
            XMLEvent event = read.nextEvent();
            if (event.isStartElement()) {
                StartElement startElement = event.asStartElement();
                if (startElement.getName().getLocalPart().equals("bookurn")) {
                    Iterator iterator = startElement.getNamespaces();
                    int count = 0;
                    while (iterator.hasNext()) {
                        iterator.next();
                        count++;
                    }
                    Assert.assertTrue(count == 2, "Two namespaces are expected for <bookurn> ");

                    Iterator attributes = startElement.getAttributes();
                    count = 0;
                    while (attributes.hasNext()) {
                        iterator.next();
                        count++;
                    }
                    Assert.assertTrue(count == 0, "Zero attributes are expected for <bookurn> ");
                }
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
        Assert.fail("Exception occured: " + e.getMessage());
    }
}
 
源代码17 项目: tutorials   文件: StaxParser.java
public List<Tutorial> getAllTutorial() {
    boolean bTitle = false;
    boolean bDescription = false;
    boolean bDate = false;
    boolean bAuthor = false;
    List<Tutorial> tutorials = new ArrayList<Tutorial>();
    try {
        XMLInputFactory factory = XMLInputFactory.newInstance();
        XMLEventReader eventReader = factory.createXMLEventReader(new FileReader(this.getFile()));
        Tutorial current = null;
        while (eventReader.hasNext()) {
            XMLEvent event = eventReader.nextEvent();
            switch (event.getEventType()) {
            case XMLStreamConstants.START_ELEMENT:
                StartElement startElement = event.asStartElement();
                String qName = startElement.getName().getLocalPart();
                if (qName.equalsIgnoreCase("tutorial")) {
                    current = new Tutorial();
                    Iterator<Attribute> attributes = startElement.getAttributes();
                    while (attributes.hasNext()) {
                        Attribute currentAt = attributes.next();
                        if (currentAt.getName().toString().equalsIgnoreCase("tutId")) {
                            current.setTutId(currentAt.getValue());
                        } else if (currentAt.getName().toString().equalsIgnoreCase("type")) {
                            current.setType(currentAt.getValue());
                        }
                    }
                } else if (qName.equalsIgnoreCase("title")) {
                    bTitle = true;
                } else if (qName.equalsIgnoreCase("description")) {
                    bDescription = true;
                } else if (qName.equalsIgnoreCase("date")) {
                    bDate = true;
                } else if (qName.equalsIgnoreCase("author")) {
                    bAuthor = true;
                }
                break;
            case XMLStreamConstants.CHARACTERS:
                Characters characters = event.asCharacters();
                if (bTitle) {
                    if (current != null) {
                        current.setTitle(characters.getData());
                    }
                    bTitle = false;
                }
                if (bDescription) {
                    if (current != null) {
                        current.setDescription(characters.getData());
                    }
                    bDescription = false;
                }
                if (bDate) {
                    if (current != null) {
                        current.setDate(characters.getData());
                    }
                    bDate = false;
                }
                if (bAuthor) {
                    if (current != null) {
                        current.setAuthor(characters.getData());
                    }
                    bAuthor = false;
                }
                break;
            case XMLStreamConstants.END_ELEMENT:
                EndElement endElement = event.asEndElement();
                if (endElement.getName().getLocalPart().equalsIgnoreCase("tutorial")) {
                    if (current != null) {
                        tutorials.add(current);
                    }
                }
                break;
            }
        }

    } catch (FileNotFoundException | XMLStreamException e) {
        e.printStackTrace();
    }

    return tutorials;
}
 
源代码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 项目: tutorials   文件: StaxParser.java
public static List<WebSite> parse(String path) {
    List<WebSite> websites = new ArrayList<WebSite>();
    WebSite website = null;
    XMLInputFactory xmlInputFactory = XMLInputFactory.newInstance();
    try {
        XMLEventReader reader = xmlInputFactory.createXMLEventReader(new FileInputStream(path));
        while (reader.hasNext()) {
            XMLEvent nextEvent = reader.nextEvent();
            if (nextEvent.isStartElement()) {
                StartElement startElement = nextEvent.asStartElement();
                switch (startElement.getName()
                    .getLocalPart()) {
                case "website":
                    website = new WebSite();
                    Attribute url = startElement.getAttributeByName(new QName("url"));
                    if (url != null) {
                        website.setUrl(url.getValue());
                    }
                    break;
                case "name":
                    nextEvent = reader.nextEvent();
                    website.setName(nextEvent.asCharacters()
                        .getData());
                    break;
                case "category":
                    nextEvent = reader.nextEvent();
                    website.setCategory(nextEvent.asCharacters()
                        .getData());
                    break;
                case "status":
                    nextEvent = reader.nextEvent();
                    website.setStatus(nextEvent.asCharacters()
                        .getData());
                    break;
                }
            }
            if (nextEvent.isEndElement()) {
                EndElement endElement = nextEvent.asEndElement();
                if (endElement.getName()
                    .getLocalPart()
                    .equals("website")) {
                    websites.add(website);
                }
            }
        }
    } catch (XMLStreamException xse) {
        System.out.println("XMLStreamException");
        xse.printStackTrace();
    } catch (FileNotFoundException fnfe) {
        System.out.println("FileNotFoundException");
        fnfe.printStackTrace();
    }
    return websites;
}
 
源代码20 项目: jettison   文件: AbstractXMLEventWriter.java
public void add(XMLEvent event) throws XMLStreamException {
	if (event.isStartDocument()) {
		streamWriter.writeStartDocument();
	} else if (event.isStartElement()) {
		StartElement element = event.asStartElement();
		QName elQName = element.getName();
		if (elQName.getPrefix().length() > 0
				&& elQName.getNamespaceURI().length() > 0)
			streamWriter.writeStartElement(elQName.getPrefix(), elQName
					.getLocalPart(), elQName.getNamespaceURI());
		else if (elQName.getNamespaceURI().length() > 0)
			streamWriter.writeStartElement(elQName.getNamespaceURI(),
					elQName.getLocalPart());
		else
			streamWriter.writeStartElement(elQName.getLocalPart());

		// Add element namespaces
		Iterator namespaces = element.getNamespaces();
		while (namespaces.hasNext()) {
			Namespace ns = (Namespace) namespaces.next();
			String prefix = ns.getPrefix();
			String nsURI = ns.getNamespaceURI();
			streamWriter.writeNamespace(prefix, nsURI);
		}

		// Add element attributes
		Iterator attris = element.getAttributes();
		while (attris.hasNext()) {
			Attribute attr = (Attribute) attris.next();
			QName atQName = attr.getName();
			String value = attr.getValue();
			if (atQName.getPrefix().length() > 0
					&& atQName.getNamespaceURI().length() > 0)
				streamWriter.writeAttribute(atQName.getPrefix(), atQName
						.getNamespaceURI(), atQName.getLocalPart(), value);
			else if (atQName.getNamespaceURI().length() > 0)
				streamWriter.writeAttribute(atQName.getNamespaceURI(),
						atQName.getLocalPart(), value);
			else
				streamWriter.writeAttribute(atQName.getLocalPart(), value);
		}
	} else if (event.isCharacters()) {
		Characters chars = event.asCharacters();
		streamWriter.writeCharacters(chars.getData());
	} else if (event.isEndElement()) {
		streamWriter.writeEndElement();
	} else if (event.isEndDocument()) {
		streamWriter.writeEndDocument();
	} else {
		throw new XMLStreamException("Unsupported event type: " + event);
	}
}