从网上收集,官方demo案例有几种绑定的方法
第一种,绑定很简单用DataSet 代替xml文档进行控件绑定
后台代码
string xmlPath = "~/userxml/historyDataLine.xml";
protected void Page_Load(object sender, EventArgs e)
{
DataSet ds= new DataSet();
ds.ReadXml(Server.MapPath(xmlPath));
this.GridView1.DataSource = ds.Tables[0];//ds.Tables["LINE_PARA"]这样也行
this.GridView1.DataBind();
}
xml文档内容
<?xml version="1.0" standalone="yes"?>
<x1>
<LINE_PARA>
<CONDUCTD>23.000</CONDUCTD>
<CONDUCTA>2001.0</CONDUCTA>
<CONDUCTTC>71.00</CONDUCTTC>
<CONDUCTR25>1.0001</CONDUCTR25>
<CONDUCTR75>1.0001</CONDUCTR75>
<CONDUCTZ1>1</CONDUCTZ1>
<CONDUCTLATITUDE>31.000</CONDUCTLATITUDE>
<CONDUCTALTITUDE>21.0</CONDUCTALTITUDE>
<CONDUCTEMISSIVITY>1.5000</CONDUCTEMISSIVITY>
<CONDUCTABSORBTIVITY>1.5000</CONDUCTABSORBTIVITY>
<AIRINDEX>1</AIRINDEX>
<CAPACITY_WM_IEEE_TEST>0</CAPACITY_WM_IEEE_TEST>
<CAPACITY_WM_GB_TEST>0</CAPACITY_WM_GB_TEST>
<CAPACITY_CTM_IEEE_TEST>0</CAPACITY_CTM_IEEE_TEST>
<CAPACITY_CTM_GB_TEST>0</CAPACITY_CTM_GB_TEST>
</LINE_PARA>
<LINE_PARA>
<CONDUCTD>12</CONDUCTD>
<CONDUCTA>20</CONDUCTA>
</LINE_PARA>
<LINE_PARA>
<CONDUCTD>8</CONDUCTD>
<CONDUCTA>1</CONDUCTA>
<CONDUCTTC>7</CONDUCTTC>
<CONDUCTR25>4</CONDUCTR25>
<CONDUCTR75>-6</CONDUCTR75>
<CONDUCTZ1>6</CONDUCTZ1>
<CONDUCTLATITUDE>6</CONDUCTLATITUDE>
<CONDUCTALTITUDE>8</CONDUCTALTITUDE>
<CONDUCTEMISSIVITY>8</CONDUCTEMISSIVITY>
<CONDUCTABSORBTIVITY>-5</CONDUCTABSORBTIVITY>
<AIRINDEX>6</AIRINDEX>
</LINE_PARA>
<LINE_PARA>
<CONDUCTD>8</CONDUCTD>
<CONDUCTA>1</CONDUCTA>
<CONDUCTTC>7</CONDUCTTC>
<CONDUCTR25>4</CONDUCTR25>
<CONDUCTR75>-6</CONDUCTR75>
<CONDUCTZ1>6</CONDUCTZ1>
<CONDUCTLATITUDE>6</CONDUCTLATITUDE>
<CONDUCTALTITUDE>8</CONDUCTALTITUDE>
<CONDUCTEMISSIVITY>8</CONDUCTEMISSIVITY>
<CONDUCTABSORBTIVITY>-5</CONDUCTABSORBTIVITY>
<AIRINDEX>6</AIRINDEX>
</LINE_PARA>
</x1>
第2中方法:
怎么读取网页中的xml文档,绑定相应的控件
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="txtXml3.aspx.cs" Inherits="txtXml3" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void Page_Load( object sender, System.EventArgs e )
{
System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
doc.Load("http://dotnet.aspx.cc/Rss.aspx");
XmlDataSource1.Data = doc.InnerXml;
XmlDataSource1.XPath = "/rss/channel/item";
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server" DataSourceID="XmlDataSource1" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField HeaderText="文章标题">
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server" Target="_blank" NavigateUrl='<%#XPath("link") %>'>
<%#XPath("title")%></asp:HyperLink>
[<%#(DateTime.Parse(XPath("pubDate").ToString().Replace("GMT",""))).ToString("yyyy年M月d日")%>]
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:XmlDataSource ID="XmlDataSource1" runat="server"></asp:XmlDataSource>
</div>
</form>
</body>
</html>
<x1>
<LINE_PARA>
<CONDUCTD>23.000</CONDUCTD>
<CONDUCTA>2001.0</CONDUCTA>
<CONDUCTTC>71.00</CONDUCTTC>
<CONDUCTR25>1.0001</CONDUCTR25>
<CONDUCTR75>1.0001</CONDUCTR75>
<CONDUCTZ1>1</CONDUCTZ1>
<CONDUCTLATITUDE>31.000</CONDUCTLATITUDE>
<CONDUCTALTITUDE>21.0</CONDUCTALTITUDE>
<CONDUCTEMISSIVITY>1.5000</CONDUCTEMISSIVITY>
<CONDUCTABSORBTIVITY>1.5000</CONDUCTABSORBTIVITY>
<AIRINDEX>1</AIRINDEX>
<CAPACITY_WM_IEEE_TEST>0</CAPACITY_WM_IEEE_TEST>
<CAPACITY_WM_GB_TEST>0</CAPACITY_WM_GB_TEST>
<CAPACITY_CTM_IEEE_TEST>0</CAPACITY_CTM_IEEE_TEST>
<CAPACITY_CTM_GB_TEST>0</CAPACITY_CTM_GB_TEST>
</LINE_PARA>
<x1>
文档2是不能用这种xpath表达式的 /*/*/* 要这种格式<x1 CONDUCTD="23.000" CONDUCTA="2001.0" />牢记
第4种用模板列的形式绑定,这里要声明一下是通过路径绑定属性 新颖.
<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Order</title> </head> <body> <form id="form1" runat="server"> <asp:XmlDataSource runat="server" id="XmlDataSource1" XPath="orders/order" DataFile="order.xml" /> <asp:Repeater ID="Repeater1" runat="server" DataSourceID="XmlDataSource1"> <ItemTemplate> <h2>Order</h2> <table> <tr> <td>Customer</td> <td><%#XPath("customer/@id")%></td> <td><%#XPath("customername/firstn")%></td> <td><%#XPath("customername/lastn")%></td> </tr> <tr> <td>Ship To</td> <td><%#XPath("shipaddress/address1")%></font></td> <td><%#XPath("shipaddress/city")%></td> <td><%#XPath("shipaddress/state")%>, <%#XPath("shipaddress/zip")%></td> </tr> </table> <h3>Order Summary</h3> <asp:Repeater ID="Repeater2" DataSource='<%#XPathSelect("summary/item")%>' runat="server"> <ItemTemplate> <b><%#XPath("@dept")%></b> - <%#XPath(".")%><br /> </ItemTemplate> </asp:Repeater> <hr /> </ItemTemplate> </asp:Repeater> </form> </body> </html>
<?xml version="1.0" encoding="iso-8859-1"?> <orders> <order> <customer id="12345" /> <customername> <firstn>John</firstn> <lastn>Smith</lastn> </customername> <transaction id="12345" /> <shipaddress> <address1>1234 Tenth Avenue</address1> <city>Bellevue</city> <state>Washington</state> <zip>98001</zip> </shipaddress> <summary> <item dept="tools">screwdriver</item> <item dept="tools">hammer</item> <item dept="plumbing">fixture</item> </summary> </order> </orders>
如:<%#XPath("customername/firstn")%> 代表xml文档的<customername><firstn>John</firstn></customername>
这个属性.