BaseXMLEventReader.java 文件源码

java
阅读 26 收藏 0 点赞 0 评论 0

项目:lams 作者:
@Override
public final String getElementText() throws XMLStreamException {
    XMLEvent event = this.previousEvent;
    if (event == null) {
        throw new XMLStreamException("Must be on START_ELEMENT to read next text, element was null");
    }
    if (!event.isStartElement()) {
        throw new XMLStreamException("Must be on START_ELEMENT to read next text", event.getLocation());
    }

    final StringBuilder text = new StringBuilder();
    while (!event.isEndDocument()) {
        switch (event.getEventType()) {
            case XMLStreamConstants.CHARACTERS:
            case XMLStreamConstants.SPACE:
            case XMLStreamConstants.CDATA: {
                final Characters characters = event.asCharacters();
                text.append(characters.getData());
                break;
            }
            case XMLStreamConstants.ENTITY_REFERENCE: {
                final EntityReference entityReference = (EntityReference)event;
                final EntityDeclaration declaration = entityReference.getDeclaration();
                text.append(declaration.getReplacementText());
                break;
            }
            case XMLStreamConstants.COMMENT:
            case XMLStreamConstants.PROCESSING_INSTRUCTION: {
                //Ignore
                break;
            }
            default: {
                throw new XMLStreamException("Unexpected event type '" + XMLStreamConstantsUtils.getEventName(event.getEventType()) + "' encountered. Found event: " + event, event.getLocation());
            }
        }

        event = this.nextEvent();
    }

    return text.toString();
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号