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

大能猫灬蹲坑逗蛆 2009-03-13 04:29:45
我需要一个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>
...全文
450 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
xj7658 2012-07-20
  • 打赏
  • 举报
回复
我怎么看不到答案
  • 打赏
  • 举报
回复
请问:
我怎么做到题目跟答题的嵌套?
  • 打赏
  • 举报
回复
谢谢各位的解答,我已经有一点头目了,但是我还有个问题想问下:
1.我怎么让xml数据跟数据库的数据做链接查询,就像 left join 一样,可能我的需求说的不是很清楚,
我的意思就是让xml文档跟sql数据像关联做个查询,不过你们可有什么例子吗?可发我邮箱yongqiang.yang@edoctor1.com 谢谢了!
2.我怎么修改某个节点的某个属性值或者文本值而保持其他的不变,就跟sql的update一样,比如说我想让
<Question PKID="问题编号3" Name="问题内容3" FK_QuestionType="多选题">
的问题内容修改为'aaa'
指间的风 2009-03-13
  • 打赏
  • 举报
回复
<?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>
指间的风 2009-03-13
  • 打赏
  • 举报
回复

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

CutBug 2009-03-13
  • 打赏
  • 举报
回复
下面是显示题目,如果要显示选项就要嵌套了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
zzxap 2009-03-13
  • 打赏
  • 举报
回复
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();
}
}
  • 打赏
  • 举报
回复
还有就是根据属性来筛选数据:比如我想取出所有的单选题,我该怎么做?
Teng_s2000 2009-03-13
  • 打赏
  • 举报
回复
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();
}
}
lxf2000104 2009-03-13
  • 打赏
  • 举报
回复
用XmlDataSource 去绑定,很方便。
chenwei175528 2009-03-13
  • 打赏
  • 举报
回复
mark and up and study
CutBug 2009-03-13
  • 打赏
  • 举报
回复
主要就是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>
CutBug 2009-03-13
  • 打赏
  • 举报
回复
应用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>

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧