Value、ReadString、ReadContentAsString、ReadElementContentAsString 区别

作者:vkvi 来源:ITPOW(原创) 日期:2010-6-24

XmlReader 中关于读取值的方法、属性极其的多,这里以读 String 为例介绍其区别。

从上上级节点 从上级节点 从文本节点 “指针”移动情况
Value 获取不到 获取不到 成功 不移动
ReadString() 出错 成功 成功 当前节点结束节点(不论是从上级节点读取,还是从文本节点读取)
ReadContentAsString() 出错 出错 成功 当前节点结束节点
ReadElementContentAsString() 出错 成功 出错 当前节点下一个兄弟节点
  • 从上上级节点:从 Text 或 CDATA 的上级节点的上级节点读取
  • 从上级节点:从 Text 或 CDATA 的上级节点读取
  • 从文本节点:从 Text 或 CDATA 读取
  • “指针”移动情况:读取完成后移动到下一节点的情况

举例解释

有 XML 片段:

<n1><n1.1>content1</n1.1><n1.2>content2</n1.2></n1>

若当前指针是 n1:

  • Value 零长度字符串
  • ReadString() 出错
  • ReadContentAsString() 出错
  • ReadElementContentAsString() 出错

若当前指针是 n1.1:

  • Value 零长度字符串
  • ReadString() content1
  • ReadContentAsString() 出错
  • ReadElementContentAsString() content1

若当前指针是 content1:

  • Value content1
  • ReadString() content1
  • ReadContentAsString() content1
  • ReadElementContentAsString() 出错

“指针”移动情况:

  • Value 不变
  • ReadString() </n1.1>
  • ReadContentAsString() </n1.1>
  • ReadElementContentAsString() <n1.2>
相关文章