首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

一个读取xml并绑定gridview的有关问题

2012-08-16 
一个读取xml并绑定gridview的问题我需要一个xml文档来保存试卷,包括试卷的题目跟答案。如下:请问各位1.如何

一个读取xml并绑定gridview的问题
我需要一个xml文档来保存试卷,包括试卷的题目跟答案。如下:
请问各位
1.如何将xml里问题节点的属性读取出来绑定gridview
2.如何将xml里的答案选项节点的属性及其文本信息读取出来并绑定gridview
 <?xml version="1.0" encoding="utf-8" ?> 
- <ExamPaper Name="我的第一期试卷" BeginDate="2009-3-4" EndDate="2009-12-30" Scort="150" UserTime="100" FK_UserType="1" FK_AdminUser="1">
- <Question PKID="问题编号0" Name="问题内容0" FK_QuestionType="单选题">
  <QuestionItem PKID="答案选项编号0" IsRight="0">答案选项内容0</QuestionItem> 
  <QuestionItem PKID="答案选项编号1" IsRight="0">答案选项内容1</QuestionItem> 
  <QuestionItem PKID="答案选项编号2" IsRight="0">答案选项内容2</QuestionItem> 
  <QuestionItem PKID="答案选项编号3" IsRight="0">答案选项内容3</QuestionItem> 
  <QuestionItem PKID="答案选项编号4" IsRight="0">答案选项内容4</QuestionItem> 
  </Question>
- <Question PKID="问题编号1" Name="问题内容1" FK_QuestionType="单选题">
  <QuestionItem PKID="答案选项编号0" IsRight="0">答案选项内容0</QuestionItem> 
  <QuestionItem PKID="答案选项编号1" IsRight="0">答案选项内容1</QuestionItem> 
  <QuestionItem PKID="答案选项编号2" IsRight="0">答案选项内容2</QuestionItem> 
  <QuestionItem PKID="答案选项编号3" IsRight="0">答案选项内容3</QuestionItem> 
  <QuestionItem PKID="答案选项编号4" IsRight="0">答案选项内容4</QuestionItem> 
  </Question>
- <Question PKID="问题编号2" Name="问题内容2" FK_QuestionType="单选题">
  <QuestionItem PKID="答案选项编号0" IsRight="0">答案选项内容0</QuestionItem> 
  <QuestionItem PKID="答案选项编号1" IsRight="0">答案选项内容1</QuestionItem> 
  <QuestionItem PKID="答案选项编号2" IsRight="0">答案选项内容2</QuestionItem> 
  <QuestionItem PKID="答案选项编号3" IsRight="0">答案选项内容3</QuestionItem> 
  <QuestionItem PKID="答案选项编号4" IsRight="0">答案选项内容4</QuestionItem> 
  </Question>
- <Question PKID="问题编号3" Name="问题内容3" FK_QuestionType="单选题">
  <QuestionItem PKID="答案选项编号0" IsRight="0">答案选项内容0</QuestionItem> 
  <QuestionItem PKID="答案选项编号1" IsRight="0">答案选项内容1</QuestionItem> 
  <QuestionItem PKID="答案选项编号2" IsRight="0">答案选项内容2</QuestionItem> 
  <QuestionItem PKID="答案选项编号3" IsRight="0">答案选项内容3</QuestionItem> 
  <QuestionItem PKID="答案选项编号4" IsRight="0">答案选项内容4</QuestionItem> 
  </Question>
- <Question PKID="问题编号4" Name="问题内容4" FK_QuestionType="单选题">
  <QuestionItem PKID="答案选项编号0" IsRight="0">答案选项内容0</QuestionItem> 
  <QuestionItem PKID="答案选项编号1" IsRight="0">答案选项内容1</QuestionItem> 
  <QuestionItem PKID="答案选项编号2" IsRight="0">答案选项内容2</QuestionItem> 
  <QuestionItem PKID="答案选项编号3" IsRight="0">答案选项内容3</QuestionItem> 
  <QuestionItem PKID="答案选项编号4" IsRight="0">答案选项内容4</QuestionItem> 
  </Question>
  </ExamPaper>

------解决方案--------------------


应用XmlDataSource

XML code
<?xml version="1.0" encoding="gb2312"?><bookstore>  <book ISBN="2-3631-1">    <title>Oberon's Legacy1 </title>  </book>  <book ISBN="2-3631-2">    <title>Oberon's Legacy2 </title>  </book>  <book ISBN="2-3631-3">    <title>Oberon's Legacy3 </title>  </book>  <book ISBN="2-3631-4">    <title>Oberon's Legacy4 </title>  </book>  <book ISBN="2-3631-5">    <title>Oberon's Legacy5 </title>  </book>  <book ISBN="2-3631-6">    <title>Oberon's Legacy6 </title>  </book>  <book ISBN="2-3631-7">    <title>Oberon's Legacy7 </title>  </book>  <book ISBN="2-3631-8">    <title>Oberon's Legacy8 </title>  </book></bookstore>
[解决办法]
主要就是Xpath语法,自己改一下
HTML code
<asp:GridView runat="server" ID="gridView1" AutoGenerateColumns="false" DataSourceID="XmlDataSource1">                <Columns>                    <asp:TemplateField HeaderText="ISBN">                    <ItemTemplate>                        <%# XPath("@ISBN")%>                    </ItemTemplate>                    </asp:TemplateField>                    <asp:TemplateField HeaderText="Title">                        <ItemTemplate>                            <%# XPath("title")%>                        </ItemTemplate>                    </asp:TemplateField>                    </Columns>                </asp:GridView> <asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="test.xml" XPath="//book" ></asp:XmlDataSource>
[解决办法]
C# code
protected void Page_Load(object sender, EventArgs e){    if (!IsPostBack)    {        DataSet ds = new DataSet();        ds.ReadXml(Server.MapPath("~/help.xml"));        GridView1.DataSource = ds;        GridView1.DataBind();    }}
[解决办法]
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataSet ds = new DataSet();
ds.ReadXml(Server.MapPath("~/help.xml"));
GridView1.DataSource = ds;
GridView1.DataBind();
}
}
[解决办法]
下面是显示题目,如果要显示选项就要嵌套了GridView了
HTML code
 <asp:GridView runat="server" ID="gridView1" AutoGenerateColumns="false" DataSourceID="XmlDataSource1">                <Columns>                    <asp:TemplateField HeaderText="试题编号">                    <ItemTemplate>                        <%# XPath("@PKID")%>                    </ItemTemplate>                    </asp:TemplateField>                    <asp:TemplateField HeaderText="试题内容">                    <ItemTemplate>                        <%# XPath("@Name")%>                    </ItemTemplate>                    </asp:TemplateField>                    </Columns>                </asp:GridView>                <asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="test.xml" XPath="//Question[@FK_QuestionType='单选题']" ></asp:XmlDataSource>
------解决方案--------------------


C# code
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %><!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>Untitled Page</title></head><body>    <form id="form1" runat="server">    <div>        </div>    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"         DataSourceID="XmlDataSource1">        <Columns>            <asp:BoundField DataField="PKID" HeaderText="PKID" SortExpression="PKID" />            <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />            <asp:BoundField DataField="FK_QuestionType" HeaderText="FK_QuestionType"                 SortExpression="FK_QuestionType" />        </Columns>    </asp:GridView>    <asp:XmlDataSource   ID="XmlDataSource1" runat="server"         DataFile="~/XMLFile.xml"          XPath = "//*[@FK_QuestionType='单选题']" >    </asp:XmlDataSource>    </form></body></html>
[解决办法]
<?xml version="1.0" encoding="utf-8" ?>
<ExamPaper Name="我的第一期试卷" BeginDate="2009-3-4" EndDate="2009-12-30" Scort="150" UserTime="100" FK_UserType="1" FK_AdminUser="1">
<Question PKID="问题编号0" Name="问题内容0" FK_QuestionType="单选题">
<QuestionItem PKID="答案选项编号0" IsRight="0">答案选项内容0 </QuestionItem>
<QuestionItem PKID="答案选项编号1" IsRight="0">答案选项内容1 </QuestionItem>
<QuestionItem PKID="答案选项编号2" IsRight="0">答案选项内容2 </QuestionItem>
<QuestionItem PKID="答案选项编号3" IsRight="0">答案选项内容3 </QuestionItem>
<QuestionItem PKID="答案选项编号4" IsRight="0">答案选项内容4 </QuestionItem>
</Question>
<Question PKID="问题编号1" Name="问题内容1" FK_QuestionType="多选题">
<QuestionItem PKID="答案选项编号0" IsRight="0">答案选项内容0 </QuestionItem>
<QuestionItem PKID="答案选项编号1" IsRight="0">答案选项内容1 </QuestionItem>
<QuestionItem PKID="答案选项编号2" IsRight="0">答案选项内容2 </QuestionItem>
<QuestionItem PKID="答案选项编号3" IsRight="0">答案选项内容3 </QuestionItem>
<QuestionItem PKID="答案选项编号4" IsRight="0">答案选项内容4 </QuestionItem>
</Question>
<Question PKID="问题编号2" Name="问题内容2" FK_QuestionType="单选题">
<QuestionItem PKID="答案选项编号0" IsRight="0">答案选项内容0 </QuestionItem>
<QuestionItem PKID="答案选项编号1" IsRight="0">答案选项内容1 </QuestionItem>
<QuestionItem PKID="答案选项编号2" IsRight="0">答案选项内容2 </QuestionItem>
<QuestionItem PKID="答案选项编号3" IsRight="0">答案选项内容3 </QuestionItem>
<QuestionItem PKID="答案选项编号4" IsRight="0">答案选项内容4 </QuestionItem>
</Question>
<Question PKID="问题编号3" Name="问题内容3" FK_QuestionType="多选题">
<QuestionItem PKID="答案选项编号0" IsRight="0">答案选项内容0 </QuestionItem>
<QuestionItem PKID="答案选项编号1" IsRight="0">答案选项内容1 </QuestionItem>


<QuestionItem PKID="答案选项编号2" IsRight="0">答案选项内容2 </QuestionItem>
<QuestionItem PKID="答案选项编号3" IsRight="0">答案选项内容3 </QuestionItem>
<QuestionItem PKID="答案选项编号4" IsRight="0">答案选项内容4 </QuestionItem>
</Question>
<Question PKID="问题编号4" Name="问题内容4" FK_QuestionType="单选题">
<QuestionItem PKID="答案选项编号0" IsRight="0">答案选项内容0 </QuestionItem>
<QuestionItem PKID="答案选项编号1" IsRight="0">答案选项内容1 </QuestionItem>
<QuestionItem PKID="答案选项编号2" IsRight="0">答案选项内容2 </QuestionItem>
<QuestionItem PKID="答案选项编号3" IsRight="0">答案选项内容3 </QuestionItem>
<QuestionItem PKID="答案选项编号4" IsRight="0">答案选项内容4 </QuestionItem>
</Question>
</ExamPaper>
[解决办法]
http://www.cnblogs.com/JaggerLee/archive/2009/02/04/1384062.html

热点排行