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>