using System;
using System.Windows.Forms;
using System.Xml;

namespace winformDemo
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }
        //XmlDocument打开文档
        XmlDocument xc = new XmlDocument();
        /// <summary>
        /// 显示所有商品的名字
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, EventArgs e)
        {
            this.textBox1.Text = "";
            // xc.Load(写入要获取文档的路径)
            xc.Load("D:\\Text\\shopping.xml");
            //XmlNodeList xnl = xc.SelectSingleNode("shopping").ChildNodes;获取shopping下面的子节点放到集合里。
            XmlNodeList xnl = xc.SelectSingleNode("shopping").ChildNodes;
            //循环去取子节点
            foreach (XmlNode xn in xnl)
            {
                //获取商品名字。
                //this.textBox1.Text += xn.Attributes["id"].Value + "\r\n";
                foreach (XmlNode xnd in xn.ChildNodes)
                {
                    if (xnd.Name == "Shopname")
                    {
                        textBox1.Text += "商品名字:" + xnd.InnerText + "\r\n";
                    }
                }
            }
        }
        /// <summary>
        /// 显示所有商品信息
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button2_Click(object sender, EventArgs e)
        {
            this.textBox2.Text = "";
            // xc.Load(写入要获取文档的路径)
            xc.Load("D:\\Text\\shopping.xml");
            //XmlNodeList xnl = xc.SelectSingleNode("shopping").ChildNodes;获取shopping下面的子节点放到集合里。
            XmlNodeList xnl = xc.SelectSingleNode("shopping").ChildNodes;
            //XmlNodeList xnl = xc.SelectSingleNode("/shopping/shop[last()]").ChildNodes;
            //XmlNodeList xnl = xc.SelectSingleNode("/shopping/shop[@id=2]").ChildNodes;
            //循环去取子节点
            foreach (XmlNode xn in xnl)
            {
                //取最后一条数据

//textBox2.Text += "商品名字:" + xn.InnerText + "\r\n";
                //获取所有商品的信息。
                textBox2.Text += "商品ID:" + xn.Attributes["id"].Value + "\r\n";
                textBox2.Text += "商品名字:" + xn.ChildNodes[0].InnerText + "\r\n";
                textBox2.Text += "商品价格:" + xn.ChildNodes[1].InnerText + "\r\n";
                textBox2.Text += "商品数量:" + xn.ChildNodes[2].InnerText + "\r\n";
            }
        }
        /// <summary>
        /// 读取所有信息
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button3_Click(object sender, EventArgs e)
        {
            this.textBox3.Text = "";
            XmlReader reader = XmlReader.Create(@"D:\\Text\\shopping.xml");
            while (reader.Read())
            {
                switch (reader.NodeType)
                {
                    case XmlNodeType.Attribute:
                        for (int i = 0; i < reader.AttributeCount; i++)
                        {
                            reader.MoveToAttribute(i);
                            this.textBox3.Text += "属性:" + reader.Name + "=" + reader.Value + "\r\n";
                        }
                        break;
                    case XmlNodeType.Element:
                        this.textBox3.Text += "节点名称:" + reader.LocalName + "\r\n";
                        for (int i = 0; i < reader.AttributeCount; i++)
                        {
                            reader.MoveToAttribute(i);
                            this.textBox3.Text += "属性:" + reader.Name + "=" + reader.Value + "\r\n";
                        }
                        break;
                    case XmlNodeType.Text:
                        this.textBox3.Text += "节点内容:" + reader.Value + "\r\n";
                        break;
                }
            }
        }
        /// <summary>
        /// 添加信息
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button4_Click(object sender, EventArgs e)
        {
            XmlWriter writer = XmlWriter.Create(@"D:\\Text\\goods.xml");
            writer.WriteStartElement("dog");
            writer.WriteAttributeString("color", "black");
            writer.WriteString("How can I be sure");
            writer.WriteEndDocument();
            writer.Close();
        }
    }
}

添加XML 是直接添加进去了,没有显示出来。所以不要重复点击,可以去文本里看。

总结的一些:
                        XML
xml:
    (超级标记语言)又称(可扩展标记语言)(简单的数据存储语言)(数据存储技术)
格式:
    gb2312,UTF-8;
数据库的存储是XML格式。
特点:
    跨平台、跨语言、跨系统、跨浏览器、节点名自定义、封闭、区分大小写、属性自定义、唯一根节点。
C#提供XML的对象和方法:
    XMLDocument(xml文档):(load(路径)、SelectSingleNode(获取根节点)、childNodes(子节点))
    XMLNodelist(节点集合):(XmlNodeList list=根节点下节点)
    XMLNode(节点):(属性:text、innerText、name、attributrs[]、value、childNodes)

今天瞎写的关于XML的一些。的更多相关文章

  1. bzoj1588: [HNOI2002]营业额统计 splay瞎写

    最近各种瞎写数论题,感觉需要回顾一下数据结构 写一发splay冷静一下(手速过慢,以后要多练练) 用splay是最直接的方法,但我感觉离散一波应该可以做出来(没仔细想过) 现在没有很追求代码优美,感觉 ...

  2. log4j.properties中的这句话“log4j.logger.org.hibernate.SQL=DEBUG ”该怎么写在log4j.xml里面呢?

    http://www.cnblogs.com/gredswsh/p/log4j_xml_properties.html 请问:log4j.properties中的这句话“log4j.logger.or ...

  3. IDEA中写MyBatis的xml配置文件编译报错的坑

    IDEA中写MyBatis的xml配置文件编译报错的坑 说明:用IDEA编译工具在项目中使用Mybatis框架,编写mybatis-config.xml和Mapper.xml配置文件时,编译项目出现错 ...

  4. SSM框架中写sql在xml文件中

    第一种(用Mapper.xml映射文件中定义了操作数据库sql) 注意点: 1.#{}与${} #{}表示一个占位符,使用占位符可以防止sql注入, ${}通过${}可以将parameterType传 ...

  5. XML文件的写,集合XML序列化(写)。XML文件的读,递归遍历

    XML文件:必须要有一个节点.检验xml文件,可以用浏览器打开,能打开表示对,否则错. 处理方法: DOM:XmlDocument文档对象模型 Sax(事件驱动,XmlReader) XmlSeria ...

  6. 【HTTP】 认证和单点登录 【瞎写的…】

    ■ Cookie,Session,Token HTTP协议是一种无状态的协议.换言之,每一个HTTP请求在得到HTTP回应之后就会断开客户端到服务端的连接.客户端可能会有下一次请求,但是那是下一次的事 ...

  7. 帮助小伙伴写的组装xml字符串类

    import java.io.IOException; import java.io.StringWriter; import java.util.ArrayList; import java.uti ...

  8. 写hibernate.cfg.xml时报错The content of element type "property" must match "(meta*,(column|formula)*,type?)".

    原配置文件是这样的 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-ma ...

  9. 瞎写的树dfs序

    这里枚举了树的DFS序来解决树上问题的多个板子,自己最好多看看. ↓改↓ ↓求↓ 点 点 ————————>>>这个就算了 点 树 简单, BIT 点 链 重点! 树 树 简单, 线 ...

随机推荐

  1. Sublime写作

    下载 Sublime Text 快捷键(MAC环境) sublime text 批量删除空白行 Sublime text3!行首,行尾,批量编辑!

  2. 数论入门2——gcd,lcm,exGCD,欧拉定理,乘法逆元,(ex)CRT,(ex)BSGS,(ex)Lucas,原根,Miller-Rabin,Pollard-Rho

    数论入门2 另一种类型的数论... GCD,LCM 定义\(gcd(a,b)\)为a和b的最大公约数,\(lcm(a,b)\)为a和b的最小公倍数,则有: 将a和b分解质因数为\(a=p1^{a1}p ...

  3. Code Chef February Challenge 2019题解

    传送门 \(HMAPPY2\) 咕 话说这题居然卡\(scanf\)的么??? int T;cin>>T; while(T--){ cin>>n>>a>> ...

  4. Get 和 Post 方法的选择和URL的设计

    原文链接:http://yifei.me/note/540 HTTP 中常用的方法有 GET/POST/PUT/DELETE 等,在设计API或者表单的时候我们需要选择合适的方法.一般有两种方案: 只 ...

  5. AngularJS入门讲解2:过滤器和双向绑定

    我们在上一课做了很多基础性的训练,接下来,我们讲一些难点的知识点,首先,讲一下如何实现一个全文检索功能: <html ng-app> <head> ... <script ...

  6. 【微信小程序】——rpx、px、rem等尺寸间关系浅析

    最近开发微信小程序,在写样式表的时候发现用PX的效果不太理想,而官方文档用rpx来做响应式布局单位,就仔细研究了下,在此做个小总结: 这里先引用官方定义的尺寸单位‘rpx’:可以根据屏幕宽度进行自适应 ...

  7. (转)使用VS实现XML2CS

    转自 StackOverFlow Method 1 XSD tool Suppose that you have your XML file in this location C:\path\to\x ...

  8. 机器学习笔记(五) K-近邻算法

    K-近邻算法 (一)定义:如果一个样本在特征空间中的k个最相似的样本中的大多数属于某一个类别,则该样本也属于这个类别. (二)相似的样本,特征之间的值应该是相近的,使用k-近邻算法需要做标准化处理.否 ...

  9. Django中的Cookie--实现登录

    Django中的Cookie--实现登录 Django Cookie  Cookie Cookie 是什么 保存在浏览器端的键值对,让服务器提取有用的信息. 为什么要有 Cookie 因为HTTP请求 ...

  10. 蓝桥杯-正则问题(dfs,解决()的计算)

    历届试题 正则问题   时间限制:1.0s   内存限制:256.0MB      问题描述 考虑一种简单的正则表达式: 只由 x ( ) | 组成的正则表达式. 小明想求出这个正则表达式能接受的最长 ...