using System;
using System.Xml;
using System.Globalization;
public class XmlTool{
public static void Main(string[] args){
XML.WriteXMLMain();
}
}
class XML{
#region 时间|通道号|串联单文件名称|终端号
public static string dString_yyyy_MM_dd; //日期表达式:2009_01_01
public static string dString_MM_dd; //日期表达式:01_01
public static string dString_MMdd; //日期表达式:0101
public static string TongDaoNo;
public static string xmlFileName;
public static string ZhongDuanNo;
public static XmlElement col,col1,col2,col3,col4,col5,col6,col7; //标题列
public static XmlElement listheader,lists,list;
public static XmlDocument doc;
public static XmlElement record,listitem,listitem1,listitem2,listitem3,listitem4,listitem5,listitem6,listitem7;
//public static int minTimeItem,maxTimeItem;
#endregion
///写串联单记录record
public static void WriteXMLMain(){
MakeXMLName();
DateTime d=new DateTime();
DateTime myD;//时段
long ssLiuShuiNo=1000000000;//素材编号计数
long myTicks=Environment.TickCount;//流水号
#region 定义root 不动头 lists list
doc=new XmlDocument();
//定义XML 标头信息
try{
XmlDeclaration dec=doc.CreateXmlDeclaration("1.0","GBK",null);
doc.AppendChild(dec);}
catch(Exception e){
Console.WriteLine("->Catch Exception:"+e);
}
lists=doc.CreateElement("lists");
doc.AppendChild(lists);
list=doc.CreateElement("list");
lists.AppendChild(list);
#endregion
AddHeader();//表头listheader
Console.WriteLine("请输入素材的播放时长:");
int perTime=Int32.Parse(Console.ReadLine());//播放时长
int ssNo=0;
Console.WriteLine("请输入素材前缀:");
string ssNameHead=Console.ReadLine();
Console.WriteLine("请输入素材类型 <文本5 图片3 视频1>");
string ssType=Console.ReadLine();
Console.WriteLine("请输入串联单编号:1位递增");
string seriCount=Console.ReadLine();
Console.WriteLine("请输入人员编号:");
string person=Console.ReadLine();
string dateSingle=dString_MMdd;
Console.WriteLine("请输入是否全屏幕 0 非全屏 1 全屏");
string ScreenType=Console.ReadLine();
#region 内容
for(int i=0;i<48;i++){
//修改时段-------------半个小时一个时段30‘
myD=d.AddMinutes(i*30);//时段递增30分钟
string timeStampNo=(i+1).ToString();
string TimeItem=myD.ToString("T", DateTimeFormatInfo.InvariantInfo);//转换为 短时间格式T
for(int j=1;j<=30*60/perTime;j++){//------------修改素材播放时长----------------
#region 批量素材段内顺序 格式:00001
string ssName="";
string ssOrder="";
if(j<10)
ssOrder="0000"+j;
if(j>=10 && j<=99)
ssOrder="000"+j;
if(j>=100 && j<=999)
ssOrder="00"+j.ToString();
if(j>=1000 && j<=9999)
ssOrder="0"+j;
if(j>9999)
ssOrder=j.ToString();
#endregion
//批量处理素材名称:图片00001 00001为素材段内顺序 图片 (1).txt
//ssName="图片"+ssLiuShuiNo.ToString().Substring(5);
int a=ssNo++;
ssName=ssNameHead+" ("+a+")";//----------修改素材版本-----------
//ssName="Sax"+a;
if(a==4){
ssNo=0;
}
#region 动态生成XML节点 record
record=doc.CreateElement("record");
listitem=doc.CreateElement("listitem");//时段编码
listitem.SetAttribute("value",timeStampNo);
record.AppendChild(listitem);
listitem1=doc.CreateElement("listitem");//时段预播时间
listitem1.SetAttribute("value",TimeItem);
record.AppendChild(listitem1);
listitem3=doc.CreateElement("listitem");//素材编号 P22250831 1_ _ _ _ _ 文本5 图片3 视频1
listitem3.SetAttribute("value","P"+person+person+person+ssType+dateSingle+seriCount+ssLiuShuiNo.ToString().Substring(5,5));
record.AppendChild(listitem3);
ssLiuShuiNo++;
if(ssName==ssNameHead+" (4)"){
ssLiuShuiNo=1000000000;}
//每40个素材 轮播一次
listitem2=doc.CreateElement("listitem");//广告版本
listitem2.SetAttribute("value",ssName);
record.AppendChild(listitem2);
listitem4=doc.CreateElement("listitem");//广告长度
listitem4.SetAttribute("value",perTime.ToString());
record.AppendChild(listitem4);
listitem5=doc.CreateElement("listitem");//段内顺序 001
listitem5.SetAttribute("value",ssOrder.Substring(2));
record.AppendChild(listitem5);
listitem6=doc.CreateElement("listitem");//流水号 文本0 图片1 视频2
//listitem6.SetAttribute("value",person+seriCount+dateSingle.Substring(1,3)+ssType+myLiuShui++.ToString().Substring(5,5));
listitem6.SetAttribute("value",String.Format("{0:D11}",myTicks++));
record.AppendChild(listitem6);
listitem7=doc.CreateElement("listitem");//是否全屏幕
listitem7.SetAttribute("value",ScreenType);
record.AppendChild(listitem7);
list.AppendChild(record);
#endregion
}
}
SaveXML();
#endregion
}
///产生XML文件名称
public static void MakeXMLName(){
Console.WriteLine("--------------------------------串联单制造 DEMO V1.0------");
Console.Write("日期:");
DateTime dNow=DateTime.Now;
dString_yyyy_MM_dd=string.Format("{0:yyyy_MM_dd}",dNow);
dString_MM_dd=string.Format("{0:MM_dd}",dNow);
dString_MMdd=string.Format("{0:MMdd}",dNow);
Console.WriteLine(dString_yyyy_MM_dd);
Console.WriteLine("请输入通道号:");
TongDaoNo=Console.ReadLine();//通道号
Console.WriteLine(":"+TongDaoNo);
Console.WriteLine("请输入终端号:");
ZhongDuanNo=Console.ReadLine();//终端号
if(ZhongDuanNo=="") //没有终端号
xmlFileName="Bill_"+dString_yyyy_MM_dd+"_001_"+TongDaoNo+".xml";//产生串联单文件名称
else//有终端号
xmlFileName="Bill_"+dString_yyyy_MM_dd+"_001_"+TongDaoNo+"_"+ZhongDuanNo+".xml";//产生串联单文件名称
//Console.WriteLine(xmlFileName);
}
///增加表头列:listHeader
public static void AddHeader(){
listheader=doc.CreateElement("listheader");
list.AppendChild(listheader);
col=doc.CreateElement("col");
col.SetAttribute("name","时段编号");
listheader.AppendChild(col);
col1=doc.CreateElement("col");
col1.SetAttribute("name","时段预播时间");
listheader.AppendChild(col1);
col2=doc.CreateElement("col");
col2.SetAttribute("name","素材编号");
listheader.AppendChild(col2);
col3=doc.CreateElement("col");
col3.SetAttribute("name","广告版本");
listheader.AppendChild(col3);
col4=doc.CreateElement("col");
col4.SetAttribute("name","广告长度");
listheader.AppendChild(col4);
col5=doc.CreateElement("col");
col5.SetAttribute("name","段内顺序");
listheader.AppendChild(col5);
col6=doc.CreateElement("col");
col6.SetAttribute("name","流水号");
listheader.AppendChild(col6);
col7=doc.CreateElement("col");
col7.SetAttribute("name","是否全屏幕");
listheader.AppendChild(col7);
}
///保存XML文件
public static void SaveXML(){
doc.Save(@"D:\myBill\"+xmlFileName); // 保存文件
Console.WriteLine("创建完成:"+xmlFileName+" <<<"+DateTime.Now.ToString()+">>>");
}
}
主要方法有:
col2=doc.CreateElement("col");
col6.SetAttribute("name","流水号");
listheader.AppendChild(col6);
- 大小: 46.6 KB
分享到:
相关推荐
1. **C#操作XML:读取** 在C#中,我们可以使用`System.Xml`命名空间中的类来处理XML文档。其中,`XmlDocument`类是核心,用于加载和操作XML文档。例如,以下代码展示了如何读取一个XML文件: ```csharp using ...
C# 读写 XML 文件总结 C# 读写 XML 文件是软件开发中常见的操作。本文总结了 C# 读写 XML 文件的基本方法,包括创建、修改和删除 XML 节点。 创建 XML 节点 C# 中使用 `XmlDocument` 类来创建和操作 XML 文件。...
总结起来,"C#操作XML完整Demo"项目旨在教授如何在C#环境中使用XML,结合三层架构设计,提供了一个实用的学习平台。通过实践这个项目,开发者不仅可以掌握XML的基础操作,还能了解到如何在实际项目中组织代码和处理...
C# 操作 XML,读取 XML 到数据库和增删改 C# 语言可以轻松地操作 XML 文件,读取 XML 文件的内容并将其存储到数据库中。同时,C# 也可以对 XML 文件进行增删改操作。 读取 XML 文件 要读取 XML 文件,首先需要将 ...
### C#操作XML取值与修改详解 #### 一、简介 在.NET框架中,C#提供了多种方式来处理XML文档,包括`XmlDocument`、`XDocument`等类。这些类可以帮助开发者轻松地读取、修改和创建XML文档。本篇文章将重点介绍如何...
本文将深入探讨如何在C#中操作XML文件,解决“未将对象引用到实例”的问题,并介绍如何通过PUT方法提交表单信息。 首先,让我们了解在C#中读取XML文件的基本步骤。使用`System.Xml`命名空间中的`XmlDocument`类可以...
总结起来,C#提供了丰富的XML处理工具,如XmlWriter、XmlDocument和XmlNode等,使得在程序中对XML文件进行创建、读取、添加元素和删除元素变得非常方便。熟练掌握这些操作对于进行数据存储和交换至关重要,特别是在...
根据给定文件中的标题、描述、标签以及部分内容,可以总结并深入探讨以下关于C#中XML解析的关键知识点: ### C#中的XML解析方式 #### 1. XML Text Reader(流式解析) - **简介**:在.NET框架中,`XMLTextReader`...
要解析XML文件,C#提供了System.Xml命名空间,其中包含如XmlDocument、XmlNode、XmlElement等类,用于读取、操作和解析XML数据。 1. **使用XmlDocument解析XML** - `XmlDocument` 类是解析XML文件的核心。通过`new...
通过自定义类,开发者可能封装了这些操作,提供了一种更简洁、统一的接口来操作XML数据。 SQL Server是Microsoft公司推出的关系型数据库管理系统,广泛应用于企业级的数据存储和管理。在C#中与SQL Server交互,通常...
通过对C#操作XML文件的深入讨论,我们不仅了解了如何创建、修改XML文件,还掌握了如何在XML与`DataSet`之间进行转换的方法。这些技能在数据处理、Web服务交互、配置文件管理等多个场景下都有着广泛的应用。掌握这些...
在.NET框架中,C#语言提供了LINQ(Language Integrated Query,语言集成查询)技术,它极大地简化了数据查询,包括对XML文档的操作。本主题将深入探讨如何使用C#的LINQ来处理XML,包括对单级和多级节点的查询、更新...
接下来,我们来看看如何使用C#操作XML。在C#中,我们可以使用System.Xml命名空间下的类来读写XML文件。例如,XmlDocument类用于加载和操作XML文档,XmlNode类表示XML文档的节点,而XmlNodeList则用来存储一组XmlNode...
本文将详细解读C#操作XML的代码实例,包括使用XmlDocument类和DataSet类进行XML数据的处理。以下知识点将根据提供的部分内容进行详细解读。 1. 使用XmlDocument类 在C#中,XmlDocument类是操作XML文档的一个主要...
在本文中,我们将深入探讨如何使用C#编程语言在Visual Studio 2008(VS2008)环境中操作XML文件,实现增、删、查、改等基本功能。XML(eXtensible Markup Language)是一种用于存储和传输数据的标准化格式,广泛应用...
本文将深入探讨如何使用C#语言读取XML文件,包括直接操作XML节点的方法以及通过序列化将XML文件转换为对象的方式。 ### 直接读取XML节点 #### 1. 使用`XmlDocument`类 `XmlDocument`是.NET Framework提供的一个类...
总结起来,这个C#操作XML的例子旨在展示如何加载XML文档,查询和修改节点,以及保存更改。实践中,你可能需要结合XPath和Linq to XML来实现更复杂的XML操作,例如查询、过滤、排序和聚合数据。这些技能对于任何C#...
1. **XMLElement**: 这个类用于创建和操作XML元素。你可以通过它来创建新的XML节点,设置或获取属性值,以及添加子节点。 2. **XMLDocument**: 提供了一种方式来操作整个XML文档,包括插入、删除和修改节点。XML...
本文介绍了在C#中如何操作XML文件的基本方法,包括添加新节点以及修改现有节点。通过这些基础操作,我们可以灵活地管理XML数据,满足各种应用场景的需求。希望本文能帮助您更好地理解和掌握C#中XML文件的操作技巧。
总结起来,C#提供了强大的XML处理能力,通过`XmlDocument`和`XDocument`等类,可以轻松地完成XML的创建、添加、删除和查询。无论是在应用程序配置、数据交换还是数据存储等方面,XML与C#的结合都能发挥出强大的功能...