解决方案 »

  1.   

    比如:
    xml中的信息:
    <startporcdata>
        <header>
            <c_dVersion value="2" />
            <c_dMagic value="1139373359" />
            <c_dItemCount value="17" />
            <c_dDataErrorCode value="0" />
            <c_dStartTime value="339500" />
            <c_dLogTime value="129687576938437500" />
        </header>
    </startporcdata>
    C#代码: //定义路径
                string myXmlFilePath = "E:\\12.19.xml";
                //实例化一个xml文档
                XmlDocument myXmlDoc = new XmlDocument();
                //加载xml文档
                myXmlDoc.Load(myXmlFilePath);
                //获得第一个为startporcdata的根节点
                XmlNode rootNode = myXmlDoc.SelectSingleNode("startporcdata");
                //获取根节点中串联值
                string innertext = rootNode.InnerText.ToString();
                //获取根节点虽有子节点结构
                string innerXmlInfo = rootNode.InnerXml.ToString();
                //获取根节点在内的整个xml的结构
                string outXmlInfo = rootNode.OuterXml.ToString();
                //获取根节点的所有自己点
                XmlNodeList firstLevelNodeList = rootNode.ChildNodes;
                //遍历所有子节点
                foreach (XmlNode node in firstLevelNodeList)
                {
                    string inner = node.InnerXml;
                    string outx = node.OuterXml;
                    //获取所有子节点的属性
                    XmlAttributeCollection attributeCol = node.Attributes;
                    //遍历自己点属性
                    foreach (XmlAttribute attri in attributeCol)
                    {
                        //获取每个节点属性的key,value值                    
                        string name = attri.Name;
                        string value = attri.Value;
                        Console.WriteLine("{0}={1}", name, value);
                        
                    }
                    //判断子节点是否还有子节点
                    if (node.HasChildNodes)
                    {//如果有子节点则执行
                        //获取子节点中的第一个孩子
                        XmlNode secondeLevelNode1 = node.FirstChild;
                        //得到第一个孩子的名称
                        string name = secondeLevelNode1.Name;
                        string innetext = secondeLevelNode1.InnerText.ToString();
                        string outxml = secondeLevelNode1.OuterXml.ToString();
                        //获得第一个孩子的串联值
                        string innerxml = secondeLevelNode1.InnerXml.ToString();
                       // Console.WriteLine("{0}={1}", name, innerxml);
                        
                        XmlNode secondLevelNode2 = node.ChildNodes[4];
                        XmlNode secondLevelNode3 = node.OwnerDocument;
                        name = secondLevelNode2.Name;
                        innerxml = secondLevelNode2.InnerXml;
                       // Console.WriteLine("{0}={1}", name, innerxml);
                        //定义保存路径
                        string save = "e:\\StartTime.log";
                        //输出日志文件并保存
                        using (System.IO.StreamWriter sw = System.IO.File.AppendText(save))
                        {
                            sw.WriteLine(name);
                            sw.Dispose();
                        }