¿Cómo leer un XML y cargarlo en un GridView con ASP.NET?

¿Cómo leer un XML y cargarlo en un GridView con ASP.NET?

En este artículo voy a explicar cómo leer los datos de un archivo XML y lo mostrare en un GridView todo esto con ASP.Net.

El archivo XML

Primero crearemos un archivo XML denominado Clientes.xml con los registros que se muestran a continuación

<Clientes>
    <Cliente>
        <ClienteID>ALFKI</ClienteID>
        <CompanyName>Alfreds Futterkiste</CompanyName>
        <ContactName>Maria </ContactName>
        <ContactTitle>Agente de ventas</ContactTitle>
        <Address>Obere Str. 57</Address>
        <City>Boise</City>
        <PostalCode>12209</PostalCode>
        <Country>Germany</Country>
        <Phone>030-0074321</Phone>
        <Fax>030-0076545</Fax>
    </Cliente>
    <Cliente>
        <ClienteID>ANATR</ClienteID>
        <CompanyName>Ana Trujillo Emparedados y helados</CompanyName>
        <ContactName>Ana Trujillo</ContactName>
        <ContactTitle>Gerente</ContactTitle>
        <Address>Avda. de la Constitución 2222</Address>
        <City>México D.F.</City>
        <PostalCode>05021</PostalCode>
        <Country>Mexico</Country>
        <Phone>555-4729</Phone>
        <Fax>555-3745</Fax>
    </Cliente>
</Clientes>

Código HTML

El HTML se compone de un control GridView con cuatro columnas que se crearon en el archivo XML. También he especificado OnPageIndexChanging en el GridView, por lo que si el archivo XML tiene un gran número de registros, podemos ver la página de datos inteligente.

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="LeerXML_Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:GridView ID="GridView1" HeaderStyle-BackColor="#3AC0F2" HeaderStyle-ForeColor="White"
                RowStyle-BackColor="#A1DCF2" AlternatingRowStyle-BackColor="White" AlternatingRowStyle-ForeColor="#000"
                runat="server" AutoGenerateColumns="false" AllowPaging="true" OnPageIndexChanging="OnPageIndexChanging">
                <Columns>
                    <asp:BoundField DataField="ClienteID" HeaderText="Id" ItemStyle-Width="80" />
                    <asp:BoundField DataField="ContactName" HeaderText="Name" ItemStyle-Width="150" />
                    <asp:BoundField DataField="City" HeaderText="City" ItemStyle-Width="150" />
                    <asp:BoundField DataField="Country" HeaderText="Country" ItemStyle-Width="150" />
                </Columns>
            </asp:GridView>
        </div>
    </form>
</body>
</html>

Código de servidor VB.NET

Imports System.Data

Partial Class LeerXML_Default
    Inherits System.Web.UI.Page
    Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
        If Not Me.IsPostBack Then
            Me.BindGrid()
        End If
    End Sub
    Private Sub BindGrid()
        Using ds As New DataSet()
            ds.ReadXml(Server.MapPath("Clientes.xml"))
            GridView1.DataSource = ds
            GridView1.DataBind()
        End Using
    End Sub
    Protected Sub OnPageIndexChanging(sender As Object, e As GridViewPageEventArgs)
        GridView1.PageIndex = e.NewPageIndex
        Me.BindGrid()
    End Sub
End Class

Espero que te sea de utilidad este ejemplo y si tienes algún problema, dudas o sugerencias estoy a tus órdenes. Ayúdanos compartiendo este artículo con tus amigos y contactos.

Puedes descargar el ejemplo en esta liga: https://github.com/jiestrada/LeerXML

Saludos y buen día.

Compartir

Comentarios (0)

Animate deja un comentario!!!

Eres un humano?

Últimos Tweets

Contáctanos

  • Dirección: Plutarco Elias Calles 243, Granjas México, Iztacalco, DF.

  • Teléfono:55-2712-3820 o 55-4164-9484

  • Email: info@developerji.com