0

我有一个 xml 文件,其结构如下:

<student>
  <name>Rahul</name>
  <name>Sheela</name>
</student>

我需要在网格视图中列出学生的姓名。

4

3 回答 3

1

您可以在 DataSet 中加载该文件并将该 DataSet 与 GridView 绑定。

DataSet ds = new DataSet();
ds.ReadXml("yourfile.xml")

gridview1.DataSource = ds;
gridview1.DataBind();

如果您的数据集有多个表,您可能需要像这样绑定表

gridview1.DataSource = ds.Tables[0]; // First table in the dataset.
gridview1.DataSource = ds.Tables[1]; // Second table in the dataset.

更改问题后

在同一个父级下具有相同名称的两个元素,它将是 Firstname、Lastname 或 RahulSheela

于 2012-07-19T18:01:06.340 回答
0

如果您可以修改 XML 文件的呈现方式,则可以使用此合成器:

ASP.net 标记页面

<asp:GridView ID="GridView1" runat="server" DataSourceID="xmlDataSource" 
     AutoGenerateColumns="False">
    <RowStyle BackColor="#EFF3FB" />
    <Columns>
        <asp:TemplateField>
           <ItemTemplate>
              <%# Eval("name") %>
           </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>
<asp:XmlDataSource ID="xmlDataSource" runat="server" DataFile="~/myxmlsource.xml" />

在这种情况下,如果可能的话,您必须修改您的 XML 文件,因为我之前一直都是这样工作的,并且在尝试了您的格式之后,它无法正常工作。也许在互联网上搜索一下会说有可能,但尚未检查。这是我使用的格式,并且非常有效:

XML 文件

<?xml version="1.0" encoding="utf-8" ?>
<students>
    <student name="Rahul" />
    <student name="Sheela" />
</students>
于 2012-07-19T18:13:06.347 回答
0

为您的 xml 创建一个 XSLT 转换文件并将此文件添加到数据源(使用“configre 数据源”),这用于重新塑造您的 xml 文件,以便 gridview 可以读取它,而无需更改您的 xml结构,假设您的 xml 结构是这样的

  <student>
    <name>Rahul</name>
    <name>Sheela</name>
  </student>

您的 XSLT 文件应如下所示

<xsl:stylesheet version="1.0" xmlns: xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:msxsl="urn:schemas-microsoft-com: xslt" exclude-result-prefixes="msxsl">
<xsl: output method="xml" indent="yes"/>
<xsl:template match ="/">
    <student>
      <xsl:apply-templates select ="//student"/>
    </student>
</xsl:template>
<xsl:template match ="//student">
    <student>
        <xsl:attribute name="name">
            <xsl:value-of select="name"/>
        </xsl:attribute>
    </student>
</xsl:template>
</xsl:stylesheet>

告诉我它是否有效

于 2013-07-13T23:43:06.523 回答