zoukankan      html  css  js  c++  java
  • C# 读取XML节点属性值

    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"));
                    }
                }
            }
        }
     
    目前还在学习中,希望会对大家有所帮助,觉得不错,就点赞支持一下。 另外,转载时请附带链接。谢谢!
  • 相关阅读:
    POJ 1286 Necklace of Beads(Polya简单应用)
    《Nosql精粹》—— 读后总结
    基于ELK的数据分析实践——满满的干货送给你
    ELK5.0安装教程
    Oozie分布式工作流——EL表达式
    《分布式Java应用与实践》—— 后面两章
    Oozie分布式工作流——从理论和实践分析使用节点间的参数传递
    Oozie分布式工作流——Action节点
    Oozie分布式工作流——流控制
    图文并茂 —— 基于Oozie调度Sqoop
  • 原文地址:https://www.cnblogs.com/dangkai/p/7889972.html
Copyright © 2011-2022 走看看