窗体就只用添加一个DataGridView控件就可以了。详细解释请参照上一篇中的借鉴曲终人散博客园的文档。

XML文档代码如下:test.xml

 <?xml version="1.0" encoding="utf-8" ?>
<bookstore>
<book type="必修课" ISBN="7-111-19149-2">
<title>数据结构</title>
<author>李</author>
<price>30.2</price>
</book>
<book type="必修课" ISBN="7-111-19149-2">
<title>数据结构</title>
<author>李</author>
<price>30.2</price>
</book>
<book type="必修课" ISBN="7-111-19149-2">
<title>数据结构</title>
<author>李</author>
<price>30.2</price>
</book>
<book type="必修课" ISBN="7-111-19149-2">
<title>数据结构</title>
<author>李</author>
<price>30.2</price>
</book>
<book type="必修课" ISBN="7-111-19149-2">
<title>数据结构</title>
<author>李</author>
<price>30.2</price>
</book>
<book type="必修课" ISBN="7-111-19149-2">
<title>数据结构</title>
<author>李</author>
<price>30.2</price>
</book>
<book type="必修课" ISBN="7-111-19149-2">
<title>数据结构</title>
<author>李</author>
<price>30.2</price>
</book> </bookstore>

为了方便添加一个类:BookClass.cs

 namespace dataGridViewTest
{
public class BookClass
{
public BookClass()
{ }
private string bookType; public string BookType
{
get { return bookType; }
set { bookType = value; }
}
private string bookISBN; public string BookISBN
{
get { return bookISBN; }
set { bookISBN = value; }
}
private string bookName; public string BookName
{
get { return bookName; }
set { bookName = value; }
}
private string bookAuthor; public string BookAuthor
{
get { return bookAuthor; }
set { bookAuthor = value; }
}
private double bookPrice; public double BookPrice
{
get { return bookPrice; }
set { bookPrice = value; }
}
}
}

然后在窗体得主代码中加入:

  public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
List<BookClass> bookModeList=new List<BookClass>();
private void Form1_Load(object sender, EventArgs e)
{
XmlDocument doc = new XmlDocument();
doc.Load(@"..\..\test.xml"); XmlNode xn = doc.SelectSingleNode("bookstore");
XmlNodeList xnl = xn.ChildNodes;
foreach (XmlNode xn1 in xnl)
{
BookClass bookClass = new BookClass();
XmlElement xe = (XmlElement)xn1;
bookClass.BookISBN = xe.GetAttribute("ISBN").ToString();
bookClass.BookType = xe.GetAttribute("type").ToString(); XmlNodeList xn10 = xe.ChildNodes;
bookClass.BookName = xn10.Item().InnerText;
bookClass.BookAuthor = xn10.Item().InnerText;
bookClass.BookPrice = Convert.ToDouble(xn10.Item().InnerText);
bookModeList.Add(bookClass);
}
dataGridView1.DataSource=bookModeList;
}
}

最终效果如下:

C#中DataGridView 对XML文档的使用的更多相关文章

  1. Java中Dom解析xml文档

    xml文档 <?xml version="1.0" encoding="UTF-8"?> <bookstore> <book id ...

  2. ios中GDataXML解析XML文档

    参考文章 http://blog.csdn.net/ryantang03/article/details/7868246 适合解析一个节点多个属性要用GDataXml 格式如下 <?xml ve ...

  3. 详解xml文件描述,读取方法以及将对象存放到xml文档中,并按照指定的特征寻找的方案

    主要的几个功能: 1.完成多条Emp信息的XML描述2.读取XML文档解析Emp信息3.将Emp(存放在List中)对象转换为XML文档4.在XML文档中查找指定特征的Emp信息 dom4j,jaxe ...

  4. 文档对象模型操作xml文档

    简介 :文档对象模型(DOM)是一种用于处理xml文档的API函数集. 2.1文档对象模型概述 按照W3C的定义,DOM是“一种允许程序或脚本动态地访问更新文档内容,结构和样式的.独立于平台和语言的规 ...

  5. 使用DOM4J解析XML文档,以及使用XPath提取XML文档

    使用DOM4J解析XML文档 需要首先下载DOM4J工具包.这是个第三方工具包 在使用DOM4J解析的时候需要导入 DOM4J的JAR包 下载DOM4J工具包->在MyEclipse中新建lib ...

  6. 容器环境下如何将NuGet包XML文档添加到Swagger

    容器环境下将NuGet包XML文档添加到Swagger 在.NET Core项目开发过程中,为了实现代码复用,我们将可以重复使用的部分拆分成一个个小的NuGet包.这些NuGet包可以在其他系统中复用 ...

  7. 从多个XML文档中读取数据用于显示webapi帮助文档

    前言: 你先得知道HelpPageConfig文件,不知道说明你现在不需要这个,所以下文就不用看了,等知道了再看也不急.当然如果你很知道这个,下文也不用看了,因为你会了. 方法一: new XmlDo ...

  8. Win 10 开发中Adaptive磁贴模板的XML文档结构,Win10 应用开发中自适应Toast通知的XML文档结构

    分享两篇Win 10应用开发的XML文档结构:Win 10 开发中Adaptive磁贴模板的XML文档结构,Win10 应用开发中自适应Toast通知的XML文档结构. Win 10 开发中Adapt ...

  9. 【HTML/XML 10】XML文档中的Schema文件

    导读:DTD是对XML文档进行有效性验证的方法之一,事实上,继DTD之后,出现了用来规范和描述XML文档的第二代标准:Schema.Schema是DTD的继承,但是也有其不同的地方,它是真正的以独立的 ...

随机推荐

  1. PS 图像调整算法——饱和度调整

    算法参考自 阿发伯 的博客. http://blog.csdn.net/maozefa 饱和度调整 图像的饱和度调整有很多方法,最简单的就是判断每个象素的R.G.B值是否大于或小于128,大于加上调整 ...

  2. HI258摄像头旋转配置问题

    {0x28, 0x04}, //Full row start y-flip  {0x29, 0x01}, //Pre1 row start no-flip {0x2a, 0x02}, //Pre1 r ...

  3. Android开发技巧——自定义控件之增加状态

    Android开发技巧--自定义控件之增加状态 题外话 这篇本该是上周四或上周五写的,无奈太久没写博客,前几段把我的兴头都用完了,就一拖再拖,直到今天.不想把这篇拖到下个月,所以还是先硬着头皮写了. ...

  4. oo第二次博客作业

    多线程协同与同步控制总结 第五次作业-多线程电梯 本次作业是我第一次接触多线程,建立了请求模拟器.调度器和电梯运行三种线程.请求模拟器负责在输入后识别有效请求:调度器在扫描有效请求后将新的请求加入请求 ...

  5. Django处理流程

    用户通过浏览器发送请求 请求到达request中间件,中间件对request请求做预处理或者直接返回response 若未返回response,会到达urlconf路由,找到对应视图函数 视图函数做相 ...

  6. CDH安装系统环境准备——系统版本和安装包下载地址指南

    由于Hadoop深受客户欢迎,许多公司都推出了各自版本的Hadoop,也有一些公司则围绕Hadoop开发产品.在Hadoop生态系统中,规模最大.知名度最高的公司则是Cloudera.接下来的日子里, ...

  7. Maximum Subarray(最大子数组)

    Find the contiguous subarray within an array (containing at least one number) which has the largest ...

  8. x&(x-1)

    x&(x-1)可以用来求出x是否为2幂次方数:当&的结果为0时,x原值是2幂次方数,否则就不是2幂次方数: x=x&(x-1)即把x从低位开始的第一个1改成0.如1000,把1 ...

  9. 读JVM相关的一些笔记

    1.JVM的运行模式 vm一般有两种运行模式,client和server(JDK 7 后有第三种 Tiered server,后续会涉及到). client : 启动快,内存占用少,JIT编译器生成代 ...

  10. Python用pip安装IPython/Jupyter最佳交互环境

    一.Python模块及安装包简介 如果说编程语言是武器,那么Python就是一把双管枪(Python2/Python3),而各种为Python编写的模块和包就是子弹.使用pip来填满我们的武器吧! I ...