Value、ReadString、ReadContentAsString、ReadElementContentAsString 区别
- 实战 ReadOuterXml 与 ReadInnerXml
- Value、ReadString、ReadContentAsString、ReadElementContentAsString 区别
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>