C# 生成和读取Xml文档




        public void CreateXmlFile()
        {
            XmlDocument xmlDoc = new XmlDocument();
            //创建类型声明节点 
            XmlNode node = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", "");
            xmlDoc.AppendChild(node);
            //创建根节点 
            XmlNode root = xmlDoc.CreateElement("Users");
            xmlDoc.AppendChild(root);

            //using (var dbBD = new APSEntities())
            //{
            //    //1代表准备传入数据至SAP,传入成功状态至为2
            //    var items = dbBD.View_QPayment_Print_TDSPAY21_List.Select(s => new { s.CompanyShortName,s.BankChineseName,s.BankAccount,s.PaymentDate,s.IworkflowID,s.Lifnr,s.Augbl,s.Name1c,s.Koinh,s.Bankac,s.Swift,s.Waers,s.Rwbtrc, CWhere = s.Waers, CWhere1 = s.BankChineseName }).Where(w => w.CWhere == "RMB" && w.CWhere1 == "花旗银行(中国)有限公司上海分行" ).Distinct();
            //    foreach (var item in items)
            //    {
            //        string strExpid = item.CompanyShortName.ToString().Trim();
            //    }
            //}

            XmlNode node1 = xmlDoc.CreateNode(XmlNodeType.Element, "User", null);
            CreateNode(xmlDoc, node1, "name", "xuwei");
            CreateNode(xmlDoc, node1, "sex", "male");
            CreateNode(xmlDoc, node1, "age", "25");
            root.AppendChild(node1);

            XmlNode node2 = xmlDoc.CreateNode(XmlNodeType.Element, "User", null);
            CreateNode(xmlDoc, node2, "name", "xiaolai");
            CreateNode(xmlDoc, node2, "sex", "female");
            CreateNode(xmlDoc, node2, "age", "23");
            root.AppendChild(node2);

            try
            {
                xmlDoc.Save("c://data5.xml");
            }
            catch (Exception e)
            {
                //显示错误信息 
                Console.WriteLine(e.Message);
            }
            //Console.ReadLine(); 

        }
        /// <summary>   
        /// 创建节点   
        /// </summary>   
        /// <param name="xmldoc"></param>  xml文档 
        /// <param name="parentnode"></param>父节点   
        /// <param name="name"></param>  节点名 
        /// <param name="value"></param>  节点值 
        ///  
        public void CreateNode(XmlDocument xmlDoc, XmlNode parentNode, string name, string value)
        {
            XmlNode node = xmlDoc.CreateNode(XmlNodeType.Element, name, null);
            node.InnerText = value;
            parentNode.AppendChild(node);
        }

        /// <summary> 
        /// 读取XML文件 
        /// </summary> 
        /// <param name="file"></param> 
        private void ReadFile(string file)
        {
            XmlDocument doc = new XmlDocument();
            doc.Load("c://data5.xml");    //加载Xml文件 
            XmlElement rootElem = doc.DocumentElement;   //获取根节点 
            XmlNodeList personNodes = rootElem.GetElementsByTagName("User"); //获取person子节点集合 
            foreach (XmlNode node in personNodes)
            {
                XmlNodeList subNameNodes = ((XmlElement)node).GetElementsByTagName("name");  //获取age子XmlElement集合 
                if (subNameNodes.Count == 1)
                {
                    string strAge = subNameNodes[0].InnerText;
                    Console.WriteLine(strAge);
                }
                XmlNodeList subSexNodes = ((XmlElement)node).GetElementsByTagName("sex");  //获取age子XmlElement集合 
                if (subSexNodes.Count == 1)
                {
                    string strAge = subSexNodes[0].InnerText;
                    Console.WriteLine(strAge);
                }
                XmlNodeList subAgeNodes = ((XmlElement)node).GetElementsByTagName("age");  //获取age子XmlElement集合 
                if (subAgeNodes.Count == 1)
                {
                    string strAge = subAgeNodes[0].InnerText;
                    Console.WriteLine(strAge);
                }
            }
        }
        private void WriteFile(string file)
        {
            Dictionary<string, string> source = new Dictionary<string, string>();
            source.Add("name", "神州侠侣");
            source.Add("quantity", "50");
            source.Add("price", "45.55");
            source.Add("author", "tiger");
            if (File.Exists(file))
            {
                XmlDocument xml = new XmlDocument();
                xml.Load(file);

                //以下代码为自动创建序号时使用,若你的数据源本身有序号,则可忽略
                XmlNodeList node = xml.SelectNodes("books/book");
                int count = Convert.ToInt32(node.Item(node.Count - 1).ChildNodes.Item(0).InnerText);
                count++;

                XmlElement ab = xml.CreateElement("book");
                StringBuilder s = new StringBuilder();
                s.Append("<id><!CDATA" + count.ToString() + "></id>");
                foreach (KeyValuePair<string, string> c in source)
                {
                    s.Append("<" + c.Key + "><!CDATA" + c.Value + "></" + c.Key + ">");
                }
                ab.InnerXml = s.ToString();
                xml.DocumentElement.AppendChild(ab);
                xml.Save(file);
            }
            else
            {
                //文件不存在,这里可以采用第一种方法写入数据
            }
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C# 中,你可以使用 `Microsoft.Office.Interop.Excel` 程序集中的 `Workbook` 和 `Worksheet` 类来读取 Excel 文件中的数据,然后将其转换为 XML 格式并保存为文件。 以下是一个简单的示例代码,演示如何将 Excel 文件转换为 XML 文件: ```csharp using System.Xml; using Microsoft.Office.Interop.Excel; // 创建一个新的Excel应用程序实例 Application excel = new Application(); Workbook workbook = excel.Workbooks.Open(@"C:\path\to\workbook.xlsx"); Worksheet sheet = workbook.Sheets[1]; // 创建一个新的XmlDocument对象 XmlDocument xmlDocument = new XmlDocument(); // 创建根元素 XmlElement rootElement = xmlDocument.CreateElement("Workbook"); xmlDocument.AppendChild(rootElement); // 逐行读取Excel数据并将其转换为Xml元素 for (int i = 1; i <= sheet.UsedRange.Rows.Count; i++) { XmlElement rowElement = xmlDocument.CreateElement("Row"); rootElement.AppendChild(rowElement); for (int j = 1; j <= sheet.UsedRange.Columns.Count; j++) { object cellValue = sheet.Cells[i, j].Value2; XmlElement cellElement = xmlDocument.CreateElement("Cell"); cellElement.InnerText = cellValue.ToString(); rowElement.AppendChild(cellElement); } } // 保存Xml文件 xmlDocument.Save(@"C:\path\to\output.xml"); // 关闭Excel应用程序和工作簿 workbook.Close(false); excel.Quit(); ``` 在上面的示例代码中,我们首先使用 `Microsoft.Office.Interop.Excel` 程序集创建了一个新的 Excel 应用程序实例,并打开了一个工作簿。然后,我们选择了工作簿中的第一个工作表,并使用 `UsedRange` 属性获取其使用的范围。 接下来,我们创建了一个新的 `XmlDocument` 对象,并为其添加了一个根元素。然后,我们使用一个循环逐行读取 Excel 文件中的数据,并将其转换为 XML 元素。最后,我们保存了 XML 文件,并关闭了 Excel 应用程序和工作簿。 请注意,上述示例使用了 `Value2` 属性来获取单元格的值。这是因为 `Value2` 属性返回一个未经格式化的值,可以更快地读取和处理数据。如果需要,你也可以使用 `Value` 属性来获取单元格的格式化值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值