C# 生成XML 多级节点
直接上代码:
在应用程序中
class Program { //public static JsonServiceClient Service = new JsonServiceClient(ConfigInfo.GetSettingAsString("ServiceJsonServiceClient")); public static JsonServiceClient Service = new JsonServiceClient("http://localhost:65241/"); static void Main(string[] args) { Console.WriteLine("---------------开始 执行生成XML---------------"); CreateXmlFile(); Console.WriteLine("---------------结束 执行生成XML---------------"); Console.ReadKey(); } /// <summary> /// 创建 /// </summary> public static void CreateXmlFile() { XmlDocument xmlDoc = new XmlDocument(); //创建类型声明节点 XmlNode node = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", ""); xmlDoc.AppendChild(node); //创建根节点 XmlElement xeRoot = xmlDoc.CreateElement("urlset"); //给节点属性赋值 xeRoot.SetAttribute("version", "1.0"); xeRoot.SetAttribute("name", "商品数据"); xmlDoc.AppendChild(xeRoot); zgqp315_Common_Goods_XML_Status status = Service.Get<zgqp315_Common_Goods_XML_Status>(string.Format("selectzgqp315_Common_Goods_XML_Operation/{0}/{1}", 1, 10000)); if (status.List.Count > 0) { for (int i = 0; i < status.List.Count; i++) { xeRoot = xmlDoc.CreateElement("url"); XmlNode xn_urlset = xmlDoc.SelectSingleNode("urlset"); if (xn_urlset != null) { xn_urlset.AppendChild(xeRoot); } CreateNode(xmlDoc, xeRoot, "loc", "http://www.baidu.com"); CreateNode(xmlDoc, xeRoot, "lastmod", DateTime.Now.ToLocalTime().ToString()); CreateNode(xmlDoc, xeRoot, "changefreq", "always"); CreateNode(xmlDoc, xeRoot, "priority", "1.0"); xeRoot = xmlDoc.CreateElement("data"); XmlNode xn_url = xmlDoc.SelectSingleNode("urlset").SelectNodes("url").Item(i); if (xn_url != null) { xn_url.AppendChild(xeRoot); } xeRoot = xmlDoc.CreateElement("dispaly"); XmlNode xn_data = xmlDoc.SelectSingleNode("urlset").SelectNodes("url").Item(i).SelectSingleNode("data"); if (xn_data != null) { xn_data.AppendChild(xeRoot); } CreateNode(xmlDoc, xeRoot, "innerID", status.List[i].SKUCCId.ToString()); CreateNode(xmlDoc, xeRoot, "sourceTime", DateTime.Now.ToLocalTime().ToString()); CreateNode(xmlDoc, xeRoot, "productLine", "1"); CreateNode(xmlDoc, xeRoot, "isDelete", "0"); CreateNode(xmlDoc, xeRoot, "title", @"<![CDATA[" + status.List[i].GoodsName + "]]>"); CreateNode(xmlDoc, xeRoot, "poster", @"<![CDATA[]]>"); CreateNode(xmlDoc, xeRoot, "originalPrice", status.List[i].PricePure.ToString()); CreateNode(xmlDoc, xeRoot, "discountPrice", status.List[i].PricePure.ToString()); CreateNode(xmlDoc, xeRoot, "onlineTime", "1401353274"); CreateNode(xmlDoc, xeRoot, "totalSalesVolume", "100"); CreateNode(xmlDoc, xeRoot, "totalReviewCounts", "100"); CreateNode(xmlDoc, xeRoot, "goodReviewCounts", "10000"); CreateNode(xmlDoc, xeRoot, "rating", "9.6"); CreateNode(xmlDoc, xeRoot, "maxRating", "10"); CreateNode(xmlDoc, xeRoot, "brand", status.List[i].GoodsName); CreateNode(xmlDoc, xeRoot, "postageFlag", "1"); CreateNode(xmlDoc, xeRoot, "certifiedFlag","1"); CreateNode(xmlDoc, xeRoot, "compensationFlag","1"); CreateNode(xmlDoc, xeRoot, "bestSellerFlag", "1"); CreateNode(xmlDoc, xeRoot, "groupSale", "1"); CreateNode(xmlDoc, xeRoot, "discountFlag", "0"); CreateNode(xmlDoc, xeRoot, "discountStartTime", ""); CreateNode(xmlDoc, xeRoot, "discountEndTime", ""); CreateNode(xmlDoc, xeRoot, "newProductFlag", "0"); CreateNode(xmlDoc, xeRoot, "status", "1"); CreateNode(xmlDoc, xeRoot, "description", @"<![CDATA[]]>"); CreateNode(xmlDoc, xeRoot, "type", "配件"); CreateNode(xmlDoc, xeRoot, "hot", "80"); CreateNode(xmlDoc, xeRoot, "maxHot", "100"); CreateNode(xmlDoc, xeRoot, "comments", "Good!"); CreateNode(xmlDoc, xeRoot, "model", ""); CreateNode(xmlDoc, xeRoot, "origin", ""); CreateNode(xmlDoc, xeRoot, "urlForApp", @"<![CDATA[]]>"); CreateNode(xmlDoc, xeRoot, "urlForWeb", @"<![CDATA[]]>"); } } try { xmlDoc.Save("d://商品_非3c商品.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 static void CreateNode(XmlDocument xmlDoc, XmlNode parentNode, string name, string value) { XmlNode node = xmlDoc.CreateNode(XmlNodeType.Element, name, null); node.InnerText = value; parentNode.AppendChild(node); } }
效果图:
我的小鱼你醒了,
还认识早晨吗?
昨夜你曾经说,
愿夜幕永不开启。
初吻吻别的那个季节,
不是已经哭过了吗?
你的香腮边轻轻滑落的,
是你的泪,还是我的泪。
我的指尖还记忆著,
你慌乱的心跳。
温润的体香里,
那一缕长髮飘飘。
——青青树 《魁拔》
交流群:ASP.NET交流群(2群) 58189568
ExtJs4.2交流群(3群)97869295
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决