C# 读取XML节点属性值

南楼画角 提交于 2020-03-12 06:21:05
xml文件格式如下:
<?xml version="1.0" encoding="UTF-8" ?>
<Product type="15" total="35">
   <type>
     <T gid="1" sum="100" />
      <T gid="2" sum="200" />
      <T gid="3" sum="100" />
   </type>
   <Mobile>
      <G gn="诺基亚"  pr="1800"  sum="100" />
      <G gn="摩托罗拉"  pr="1700"  sum="200" />
      <G gn="三星"  pr="1600"  sum="300" />
      <G gn="飞利浦"  pr="1750"  sum="90" />
   </Mobile>
</Product>

 

//-----------------------------------
我需要读取Product节点的type(15)  total(35)值 以及 Mobile节点下的子节点G里面的属性gn、pr、sum的值.
最好把type节点下的T 属性也读取出来
XmlTextReader xml = new XmlTextReader(xmlfile);
            while (xml.Read())
            {

      这里如何写代码?
      textBox1 .AppendText();//将属性值分行输出至textBox1,格式为:商品:诺基亚 - 价钱:1800 - 数量:100

     }
 
 
class MyXMLTextReader
    {
        static void Main(string[] args)
        {
            XmlTextReader xml = new XmlTextReader(@"Product.xml");
            xml.WhitespaceHandling = WhitespaceHandling.None;

            while (xml.Read())
            {
                if (xml.NodeType == XmlNodeType.Element)
                {
                    if (xml.Name == "Product")
                        ReadTypeAndTotal(xml);
                    else if (xml.Name == "Mobile")
                        ReadG(xml);
                }
            }

            Console.ReadKey(true);
        }

        // 读取Product节点的type(15)  total(35)值
        private static void ReadTypeAndTotal(XmlTextReader xml)
        {
            Console.Write("Product节点的type: ");
            Console.WriteLine(xml.GetAttribute("type"));
            Console.Write("Product节点的total: ");
            Console.WriteLine(xml.GetAttribute("total"));
        }

        // Mobile节点下的子节点G里面的属性gn、pr、sum的值
        private static void ReadG(XmlTextReader xml)
        {
            Console.WriteLine();           
            while (xml.Read())
            {
                if (xml.NodeType == XmlNodeType.Element)
                {
                    if (xml.Name != "G")
                        break;

                    Console.Write("商品:");
                    Console.Write(xml.GetAttribute("gn"));
                    Console.Write(" - ");
                    Console.Write("价钱:");
                    Console.Write(xml.GetAttribute("pr"));
                    Console.Write(" - ");
                    Console.Write("数量:");
                    Console.WriteLine(xml.GetAttribute("sum"));
                }
            }
        }
    }

 

 
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!