java reader的属性_Java XMLStreamReader.ATTRIBUTE属性代码示例

本文档详细介绍了如何在XMLStreamReaderEx中处理私有方法storeElementAndChildrenEx,包括元素存储、子节点递归处理和不同事件类型的响应。特别关注了字符数据的特殊处理和命名空间存储策略。
摘要由CSDN通过智能技术生成

private void storeElementAndChildrenEx(XMLStreamReaderEx reader) throws XMLStreamException {

int depth = 1;

if (_storeInScopeNamespacesOnElementFragment) {

storeElementWithInScopeNamespaces(reader);

} else {

storeElement(reader);

}

while(depth > 0) {

_eventType = reader.next();

switch (_eventType) {

case XMLStreamReader.START_ELEMENT:

depth++;

storeElement(reader);

break;

case XMLStreamReader.END_ELEMENT:

depth--;

storeStructure(T_END);

break;

case XMLStreamReader.NAMESPACE:

storeNamespaceAttributes(reader);

break;

case XMLStreamReader.ATTRIBUTE:

storeAttributes(reader);

break;

case XMLStreamReader.SPACE:

case XMLStreamReader.CHARACTERS:

case XMLStreamReader.CDATA: {

CharSequence c = reader.getPCDATA();

if (c instanceof Base64Data) {

storeStructure(T_TEXT_AS_OBJECT);

//Instead of clone the Base64Data, the original Base64Data instance is used here to preserve the DataHandler

storeContentObject(c);

} else {

storeContentCharacters(T_TEXT_AS_CHAR_ARRAY,

reader.getTextCharacters(), reader.getTextStart(),

reader.getTextLength());

}

break;

}

case XMLStreamReader.COMMENT:

storeComment(reader);

break;

case XMLStreamReader.PROCESSING_INSTRUCTION:

storeProcessingInstruction(reader);

break;

}

}

/*

* Move to next item after the end of the element

* that has been stored

*/

_eventType = reader.next();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值