You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用VB.NET解析带元数据和数据行的XML,求解决方案

VB.NET解析含元数据的XML并绑定到GridView

解析思路

你的XML结构分为两部分:<METADATA>定义了所有字段名,<RECORD>下的<ROW>节点通过属性存储每行数据。我们可以用DataTable匹配这个结构——先从元数据提取列名,再遍历数据行填充内容,最后绑定到GridView。

完整代码实现

Imports System.Xml.Linq
Imports System.Data

Public Class XmlToGridViewHandler
    Sub ParseXmlAndBindToGridView()
        ' 加载XML文件(若为XML字符串,可改用XDocument.Parse(xmlContent))
        Dim xmlDoc As XDocument = XDocument.Load("你的XML文件路径.xml")
        
        ' 创建DataTable存储解析后的数据
        Dim dataTable As New DataTable()
        
        ' 从元数据提取字段名,添加为DataTable的列
        Dim fieldNodes = xmlDoc.Descendants("FIELD")
        For Each fieldNode In fieldNodes
            Dim fieldName As String = fieldNode.Attribute("attrname").Value
            dataTable.Columns.Add(fieldName)
        Next
        
        ' 遍历所有数据行节点,填充DataTable
        Dim rowNodes = xmlDoc.Descendants("ROW")
        For Each rowNode In rowNodes
            Dim dataRow As DataRow = dataTable.NewRow()
            ' 遍历当前行的所有属性,匹配列名赋值
            For Each attr In rowNode.Attributes()
                If dataTable.Columns.Contains(attr.Name.LocalName) Then
                    dataRow(attr.Name.LocalName) = attr.Value
                End If
            Next
            dataTable.Rows.Add(dataRow)
        Next
        
        ' 将DataTable绑定到GridView
        GridView1.DataSource = dataTable
        GridView1.DataBind()
    End Sub
End Class

代码说明

  • XML加载:使用XDocument加载文件或解析字符串,LINQ to XML语法简洁易维护。
  • 列结构构建:从<FIELD>节点的attrname属性提取列名,确保DataTable列与XML字段完全对应。
  • 数据填充:遍历每个<ROW>节点的属性,自动匹配DataTable列赋值,兼容XML中存在但元数据未定义的字段(会自动忽略)。
  • GridView绑定:直接将DataTable设为数据源并执行绑定,自动生成表格列和数据行。

最终呈现效果

绑定后GridView会生成如下格式的表格(与你期望的一致):

LAYBYETITLEINITSSURNAMECOMPANYNAMEEXPDATEBALANCEIDNUMBERCellphone
1MRJDOE2019052310012399999999
1MRSJJDOE20190701500456888888

内容的提问来源于stack exchange,提问作者Henjane Pty Ltd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 16:41:31