我需要一个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>

解决方案 »

  1.   

    应用XmlDataSource
    <?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> <asp:ScriptManager ID="ScriptManager1" runat="server">
            </asp:ScriptManager>
            <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                <ContentTemplate>
                    <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>
              </ContentTemplate>
            </asp:UpdatePanel>  
            <asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="test.xml" XPath="//book" ></asp:XmlDataSource>
      

  2.   

    主要就是Xpath语法,自己改一下
    <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>
      

  3.   

    用XmlDataSource  去绑定,很方便。
      

  4.   

    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();
        }
    }
      

  5.   

    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();
        }
    }
      

  6.   

    下面是显示题目,如果要显示选项就要嵌套了GridView了
     <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>
    显示结果:
    试题编号 试题内容 
    问题编号0  问题内容0  
    问题编号1  问题内容1  
    问题编号2  问题内容2  
    问题编号3  问题内容3  
    问题编号4  问题内容4  
      

  7.   


    <%@ 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>
      

  8.   

    <?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>
      

  9.   

    http://www.cnblogs.com/JaggerLee/archive/2009/02/04/1384062.html
      

  10.   

    谢谢各位的解答,我已经有一点头目了,但是我还有个问题想问下:
    1.我怎么让xml数据跟数据库的数据做链接查询,就像 left join 一样,可能我的需求说的不是很清楚,
    我的意思就是让xml文档跟sql数据像关联做个查询,不过你们可有什么例子吗?可发我邮箱[email protected] 谢谢了!
    2.我怎么修改某个节点的某个属性值或者文本值而保持其他的不变,就跟sql的update一样,比如说我想让
    <Question PKID="问题编号3" Name="问题内容3" FK_QuestionType="多选题"> 
    的问题内容修改为'aaa'