.NET 读取 xml 文件中指定元素/字段/节点数据的简单方法

Posted by Admin L in .NET Programming, Web Programming & Resources on 29-09-2011. Tags:

作者:牧山道人
原文地址:https://www.seeksunslowly.com/vb2008-dot-net-read-xml-data-by-element-field-node-name-sc
转载请注明出处,谢谢。
_____________________________________

今天第一次需要在 .NET 中读取 XML 文件内容,通过文件格式观想,感觉应可以直接指定元素(其实也就是字段、节点)名称直接取出,像读取 ini 配置文件一样方便。

但通过搜索 MSDN 示例及网上的资料,发现各位大仙给的方法十分复杂,好多人都去递归遍历了所有节点,再根据节点名称 Select Case……另外有些方法还交叉使用了 System.Xml 命名空间中的若干类……所有种种,让人眼花缭乱,跟“观想”的结果大相径庭。

于是,不得不自己逐个观察 XmlDocument 类型的各个成员,XML 数据格式这么流行,.NET 应该不会没有简单解决方案。
最终,解决问题的关键落在了 XmlDocument 及 XmlElement 的 Item 属性身上,该属性可以跟元素名称参数,返回一个 XmlElement 类型的对象,正好像读取 ini 文件一样解决了问题。

简单的 XML 文件及代码示例如下,诸君若有进阶需求,请自行扩展。
VB2008 代码:
[cc lang=”vbnet”]
Imports System.Xml
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
” 声明并初始化 XmlDocument 对象 xd。
Dim xd As New XmlDocument
xd.Load(“H:\test.xml”)

‘ 声明并取得根节点/元素,注意 Item()属性的用法。
Dim xeRoot As XmlElement = xd.Item(“XML_DIZ_INFO”)

‘ 声明 XmlElement 对象 xe,并取得其引用。
Dim xe As XmlElement = xeRoot.Item(“First_Node”)

” 显示第一个节点下各字段/元素数据。
MsgBox(xe.Item(“Element_1_First”).InnerText)
MsgBox(xe.Item(“Element_2_First”).InnerText)

” 显示第二个节点下各字段/元素数据。
xe = xeRoot.Item(“Second_Node”)
MsgBox(xe.Item(“Element_1_Second”).InnerText)
MsgBox(xe.Item(“Element_2_Second”).InnerText)

End Sub
End Class
[/cc]

是不是非常简单?几乎比读 ini 还要简单(因为主要参数只有一个)。

以下是所引用的 XML 文件 H:\test.xml。
[cc lang=”xml”]



Element_1_First’s data.
Element_2_First’s data.


Element_1_Second’s data.
Element_2_Second’s data.


[/cc]

当然,以上方法与思路也可借鉴于您的 Web 程序若其他编程语言。

【赞赏 / Reward】

微信         支付宝         PayPal

Post a comment