【博图TIA-Api】通过Excel自动快速导入IO文本列表
说明
续上一篇文章的IO变量,这次是根据Excel表格导入程序内的文本列表。
其实方法都差不多,不只是IO变量注释的文本列表,其他文本列表也是同样方法。
思路
- 调用TIA的Api接口
- 实现方式为C#的“Windows 窗体应用(.NET Framework),(默认PC已经装了Visual Studio)
- IO变量存在Excel文件中,导入时需要选择文档
- 西门子子接口使用文档(中文的) 点击链接进入
准备
该文章已提过的准备事项就不再重复,只提及未重复的。链接: 【博图TIA-Api】通过Excel自动快速导入IO变量
获取当前Device的HMI(返回HmiTarget)
从Device获取HmiTarget,只有获取了HmiTarget的类型,才能获取程序里的一切内容
导入HMI文本列表
该xml文件一旦导入就是导入文本列表
#region 导入HMI文本
//Imports a single TextList
public static void ImportSingleTextList(HmiTarget hmitarget, string path)
{
TextListComposition textListComposition = hmitarget.TextLists;
//IList<TextList> importedTextLists
textListComposition.Import(new FileInfo(path), ImportOptions.Override);
}
#endregion
导出HMI的文本列表为XML文件
之前PLC程序的xml文件可以通过【版本控制接口】导出,但是HMI的文本列表却只能用调用接口导出。
输入一个HMI目标,反正导出一次后就有文件了,程序没写成通用的。输出路径我直接写了一个固定路径
public static void ExportTextLists(HmiTarget hmitarget)
{
TextListComposition text = hmitarget.TextLists;
foreach (TextList textList in text)
{
FileInfo info = new FileInfo(string.Format(@"D:\Export\{0}.xml", textList.Name));
textList.Export(info, ExportOptions.WithDefaults);
}
}
#endregion
关键注意:导出的是HMI所有的文本列表
输入输出注释说明
文本列表分为3个。一个是显示总的地址,一个是所有输入的注释,一个是所有输出的注释。
总输入输出XML文件分析
打开总输入输出的xml文件
文本添加的规律和IO变量差不多
具体调用代码,这些都是对Xml文件的操作
#region IO导入文本新建节点_ID=1的情况
public static void IOxmlCreatXelmentID_1(string str, XmlDocument xmlDoc, XmlElement rootElement, string strings)
{
XmlElement xe1 = xmlDoc.CreateElement("MultilingualTextItem");
xe1.SetAttribute("ID", str);//设置该节点ID属性
xe1.SetAttribute("CompositionName", "Items");//设置该节点CompositionName属性
rootElement.AppendChild(xe1);
XmlElement xe1_2 = xmlDoc.CreateElement("AttributeList");
xe1.AppendChild(xe1_2);
XmlElement xe1_2_1 = xmlDoc.CreateElement("Culture");
xe1_2_1.InnerText = strings;
xe1_2.AppendChild(xe1_2_1);
XmlNode createNode = xmlDoc.CreateNode(XmlNodeType.Element, "Text", "");
xe1_2.AppendChild(createNode);
}
#endregion
#region IO导入文本新建节点_ID=1之外的情况_IO总显示
public static void IOxmlCreatXelmentID_1_Other_ALLIO(int Number, XmlDocument xmlDoc, XmlElement rootElement, int IO, string FilePath)
{
XmlElement xe1 = xmlDoc.CreateElement("Hmi.TextGraphicList.TextListEntry");
xe1.SetAttribute("ID", DecimalToHex(Number));//设置该节点ID属性
xe1.SetAttribute("CompositionName", "Entries");//设置该节点CompositionName属性
rootElement.AppendChild(xe1);
XmlElement xe1_2 = xmlDoc.CreateElement("AttributeList");
xe1.AppendChild(xe1_2);
XmlElement xe1_2_1 = xmlDoc.CreateElement("DefaultEntry");
xe1_2_1.InnerText = "false";
xe1_2.AppendChild(xe1_2_1);
XmlElement xe1_2_2 = xmlDoc.CreateElement("EntryType");
xe1_2_2.InnerText = "SingleValue";
xe1_2.AppendChild(xe1_2_2);
XmlElement xe1_2_3 = xmlDoc.CreateElement("From");
xe1_2_3.InnerText = IO.ToString();
xe1_2.AppendChild(xe1_2_3);
XmlElement xe1_2_4 = xmlDoc.CreateElement("To");
xe1_2_4.InnerText = IO.ToString();
xe1_2.AppendChild(xe1_2_4);
XmlElement xe1_3 = xmlDoc.CreateElement("ObjectList");
xe1.AppendChild(xe1_3);
XmlElement xe1_3_1 = xmlDoc.CreateElement("MultilingualText");
xe1_3_1.SetAttribute("ID", DecimalToHex(Number + 1));//设置该节点ID属性
xe1_3_1.SetAttribute("CompositionName", "Text");//设置该节点CompositionName属性
xe1_3.AppendChild(xe1_3_1);
XmlElement xe1_3_1_1 = xmlDoc.CreateElement("ObjectList");
xe1_3_1.AppendChild(xe1_3_1_1);
XmlElement xe1_3_1_1_1 = xmlDoc.CreateElement("MultilingualTextItem");
xe1_3_1_1_1.SetAttribute("ID", DecimalToHex(Number + 2));//设置该节点ID属性
xe1_3_1_1_1.SetAttribute("CompositionName", "Items");//设置该节点CompositionName属性
xe1_3_1_1.AppendChild(xe1_3_1_1_1);
XmlElement xe1_3_1_1_1_1 = xmlDoc.CreateElement("AttributeList");
xe1_3_1_1_1.AppendChild(xe1_3_1_1_1_1);
XmlElement xe1_3_1_1_1_1_1 = xmlDoc.CreateElement("Culture");
xe1_3_1_1_1_1_1.InnerText = "zh-CN";
xe1_3_1_1_1_1.AppendChild(xe1_3_1_1_1_1_1);
XmlElement xe1_3_1_1_1_1_2 = xmlDoc.CreateElement("Text");
xe1_3_1_1_1_1_2.InnerXml = "<body><p>" + "IW" + IO.ToString() + "/QW" + IO.ToString() + "</p></body>";
xe1_3_1_1_1_1.AppendChild(xe1_3_1_1_1_1_2);
XmlElement xe1_3_1_1_2 = xmlDoc.CreateElement("MultilingualTextItem");
xe1_3_1_1_2.SetAttribute("ID", DecimalToHex(Number + 3));//设置该节点ID属性
xe1_3_1_1_2.SetAttribute("CompositionName", "Items");//设置该节点CompositionName属性
xe1_3_1_1.AppendChild(xe1_3_1_1_2);
XmlElement xe1_3_1_1_2_1 = xmlDoc.CreateElement("AttributeList");
xe1_3_1_1_2.AppendChild(xe1_3_1_1_2_1);
XmlElement xe1_3_1_1_2_1_1 = xmlDoc.CreateElement("Culture");
xe1_3_1_1_2_1_1.InnerText = "en-GB";
xe1_3_1_1_2_1.AppendChild(xe1_3_1_1_2_1_1);
XmlElement xe1_3_1_1_2_1_2 = xmlDoc.CreateElement("Text");
xe1_3_1_1_2_1_2.InnerXml = "<body><p>" + "IW" + IO.ToString() + "/QW" + IO.ToString() + "</p></body>";
xe1_3_1_1_2_1.AppendChild(xe1_3_1_1_2_1_2);
XmlElement xe1_3_1_1_3 = xmlDoc.CreateElement("MultilingualTextItem");
xe1_3_1_1_3.SetAttribute("ID", DecimalToHex(Number + 4));//设置该节点ID属性
xe1_3_1_1_3.SetAttribute("CompositionName", "Items");//设置该节点CompositionName属性
xe1_3_1_1.AppendChild(xe1_3_1_1_3);
XmlElement xe1_3_1_1_3_2 = xmlDoc.CreateElement("AttributeList");
xe1_3_1_1_3.AppendChild(xe1_3_1_1_3_2);
XmlElement xe1_3_1_1_3_2_1 = xmlDoc.CreateElement("Culture");
xe1_3_1_1_3_2_1.InnerText = "de-DE";
xe1_3_1_1_3_2.AppendChild(xe1_3_1_1_3_2_1);
XmlElement xe1_3_1_1_3_2_2 = xmlDoc.CreateElement("Text");
xe1_3_1_1_3_2_2.InnerXml = "<body><p></p></body>";
xe1_3_1_1_3_2.AppendChild(xe1_3_1_1_3_2_2);
XmlElement xe1_3_1_1_4 = xmlDoc.CreateElement("MultilingualTextItem");
xe1_3_1_1_4.SetAttribute("ID", DecimalToHex(Number + 5));//设置该节点ID属性
xe1_3_1_1_4.SetAttribute("CompositionName", "Items");//设置该节点CompositionName属性
xe1_3_1_1.AppendChild(xe1_3_1_1_4);
XmlElement xe1_3_1_1_4_2 = xmlDoc.CreateElement("AttributeList");
xe1_3_1_1_4.AppendChild(xe1_3_1_1_4_2);
XmlElement xe1_3_1_1_4_2_1 = xmlDoc.CreateElement("Culture");
xe1_3_1_1_4_2_1.InnerText = "cs-CZ";
xe1_3_1_1_4_2.AppendChild(xe1_3_1_1_4_2_1);
XmlElement xe1_3_1_1_4_2_2 = xmlDoc.CreateElement("Text");
xe1_3_1_1_4_2_2.InnerXml = "<body><p></p></body>";
xe1_3_1_1_4_2.AppendChild(xe1_3_1_1_4_2_2);
XmlElement xe1_3_1_1_5 = xmlDoc.CreateElement("MultilingualTextItem");
xe1_3_1_1_5.SetAttribute("ID", DecimalToHex(Number + 6));//设置该节点ID属性
xe1_3_1_1_5.SetAttribute("CompositionName", "Items");//设置该节点CompositionName属性
xe1_3_1_1.AppendChild(xe1_3_1_1_5);
XmlElement xe1_3_1_1_5_2 = xmlDoc.CreateElement("AttributeList");
xe1_3_1_1_5.AppendChild(xe1_3_1_1_5_2);
XmlElement xe1_3_1_1_5_2_1 = xmlDoc.CreateElement("Culture");
xe1_3_1_1_5_2_1.InnerText = "es-ES";
xe1_3_1_1_5_2.AppendChild(xe1_3_1_1_5_2_1);
XmlElement xe1_3_1_1_5_2_2 = xmlDoc.CreateElement("Text");
xe1_3_1_1_5_2_2.InnerXml = "<body><p></p></body>";
xe1_3_1_1_5_2.AppendChild(xe1_3_1_1_5_2_2);
XmlElement xe1_3_1_1_6 = xmlDoc.CreateElement("MultilingualTextItem");
xe1_3_1_1_6.SetAttribute("ID", DecimalToHex(Number + 7));//设置该节点ID属性
xe1_3_1_1_6.SetAttribute("CompositionName", "Items");//设置该节点CompositionName属性
xe1_3_1_1.AppendChild(xe1_3_1_1_6);
XmlElement xe1_3_1_1_6_2 = xmlDoc.CreateElement("AttributeList");
xe1_3_1_1_6.AppendChild(xe1_3_1_1_6_2);
XmlElement xe1_3_1_1_6_2_1 = xmlDoc.CreateElement("Culture");
xe1_3_1_1_6_2_1.InnerText = "fr-FR";
xe1_3_1_1_6_2.AppendChild(xe1_3_1_1_6_2_1);
XmlElement xe1_3_1_1_6_2_2 = xmlDoc.CreateElement("Text");
xe1_3_1_1_6_2_2.InnerXml = "<body><p></p></body>";
xe1_3_1_1_6_2.AppendChild(xe1_3_1_1_6_2_2);
XmlElement xe1_3_1_1_7 = xmlDoc.CreateElement("MultilingualTextItem");
xe1_3_1_1_7.SetAttribute("ID", DecimalToHex(Number + 8));//设置该节点ID属性
xe1_3_1_1_7.SetAttribute("CompositionName", "Items");//设置该节点CompositionName属性
xe1_3_1_1.AppendChild(xe1_3_1_1_7);
XmlElement xe1_3_1_1_7_2 = xmlDoc.CreateElement("AttributeList");
xe1_3_1_1_7.AppendChild(xe1_3_1_1_7_2);
XmlElement xe1_3_1_1_7_2_1 = xmlDoc.CreateElement("Culture");
xe1_3_1_1_7_2_1.InnerText = "hu-HU";
xe1_3_1_1_7_2.AppendChild(xe1_3_1_1_7_2_1);
XmlElement xe1_3_1_1_7_2_2 = xmlDoc.CreateElement("Text");
xe1_3_1_1_7_2_2.InnerXml = "<body><p></p></body>";
xe1_3_1_1_7_2.AppendChild(xe1_3_1_1_7_2_2);
XmlElement xe1_3_1_1_8 = xmlDoc.CreateElement("MultilingualTextItem");
xe1_3_1_1_8.SetAttribute("ID", DecimalToHex(Number + 9));//设置该节点ID属性
xe1_3_1_1_8.SetAttribute("CompositionName", "Items");//设置该节点CompositionName属性
xe1_3_1_1.AppendChild(xe1_3_1_1_8);
XmlElement xe1_3_1_1_8_2 = xmlDoc.CreateElement("AttributeList");
xe1_3_1_1_8.AppendChild(xe1_3_1_1_8_2);
XmlElement xe1_3_1_1_8_2_1 = xmlDoc.CreateElement("Culture");
xe1_3_1_1_8_2_1.InnerText = "it-IT";
xe1_3_1_1_8_2.AppendChild(xe1_3_1_1_8_2_1);
XmlElement xe1_3_1_1_8_2_2 = xmlDoc.CreateElement("Text");
xe1_3_1_1_8_2_2.InnerXml = "<body><p></p></body>";
xe1_3_1_1_8_2.AppendChild(xe1_3_1_1_8_2_2);
XmlElement xe1_3_1_1_9 = xmlDoc.CreateElement("MultilingualTextItem");
xe1_3_1_1_9.SetAttribute("ID", DecimalToHex(Number + 10));//设置该节点ID属性
xe1_3_1_1_9.SetAttribute("CompositionName", "Items");//设置该节点CompositionName属性
xe1_3_1_1.AppendChild(xe1_3_1_1_9);
XmlElement xe1_3_1_1_9_2 = xmlDoc.CreateElement("AttributeList");
xe1_3_1_1_9.AppendChild(xe1_3_1_1_9_2);
XmlElement xe1_3_1_1_9_2_1 = xmlDoc.CreateElement("Culture");
xe1_3_1_1_9_2_1.InnerText = "pl-PL";
xe1_3_1_1_9_2.AppendChild(xe1_3_1_1_9_2_1);
XmlElement xe1_3_1_1_9_2_2 = xmlDoc.CreateElement("Text");
xe1_3_1_1_9_2_2.InnerXml = "<body><p></p></body>";
xe1_3_1_1_9_2.AppendChild(xe1_3_1_1_9_2_2);
XmlElement xe1_3_1_1_10 = xmlDoc.CreateElement("MultilingualTextItem");
xe1_3_1_1_10.SetAttribute("ID", DecimalToHex(Number + 11));//设置该节点ID属性
xe1_3_1_1_10.SetAttribute("CompositionName", "Items");//设置该节点CompositionName属性
xe1_3_1_1.AppendChild(xe1_3_1_1_10);
XmlElement xe1_3_1_1_10_2 = xmlDoc.CreateElement("AttributeList");
xe1_3_1_1_10.AppendChild(xe1_3_1_1_10_2);
XmlElement xe1_3_1_1_10_2_1 = xmlDoc.CreateElement("Culture");
xe1_3_1_1_10_2_1.InnerText = "ru-RU";
xe1_3_1_1_10_2.AppendChild(xe1_3_1_1_10_2_1);
XmlElement xe1_3_1_1_10_2_2 = xmlDoc.CreateElement("Text");
xe1_3_1_1_10_2_2.InnerXml = "<body><p></p></body>";
xe1_3_1_1_10_2.AppendChild(xe1_3_1_1_10_2_2);
XmlElement xe1_3_1_1_11 = xmlDoc.CreateElement("MultilingualTextItem");
xe1_3_1_1_11.SetAttribute("ID", DecimalToHex(Number + 12));//设置该节点ID属性
xe1_3_1_1_11.SetAttribute("CompositionName", "Items");//设置该节点CompositionName属性
xe1_3_1_1.AppendChild(xe1_3_1_1_11);
XmlElement xe1_3_1_1_11_2 = xmlDoc.CreateElement("AttributeList");
xe1_3_1_1_11.AppendChild(xe1_3_1_1_11_2);
XmlElement xe1_3_1_1_11_2_1 = xmlDoc.CreateElement("Culture");
xe1_3_1_1_11_2_1.InnerText = "sv-SE";
xe1_3_1_1_11_2.AppendChild(xe1_3_1_1_11_2_1);
XmlElement xe1_3_1_1_11_2_2 = xmlDoc.CreateElement("Text");
xe1_3_1_1_11_2_2.InnerXml = "<body><p></p></body>";
xe1_3_1_1_11_2.AppendChild(xe1_3_1_1_11_2_2);
XmlElement xe1_3_1_1_12 = xmlDoc.CreateElement("MultilingualTextItem");
xe1_3_1_1_12.SetAttribute("ID", DecimalToHex(Number + 13));//设置该节点ID属性
xe1_3_1_1_12.SetAttribute("CompositionName", "Items");//设置该节点CompositionName属性
xe1_3_1_1.AppendChild(xe1_3_1_1_12);
XmlElement xe1_3_1_1_12_2 = xmlDoc.CreateElement("AttributeList");
xe1_3_1_1_12.AppendChild(xe1_3_1_1_12_2);
XmlElement xe1_3_1_1_12_2_1 = xmlDoc.CreateElement("Culture");
xe1_3_1_1_12_2_1.InnerText = "pt-BR";
xe1_3_1_1_12_2.AppendChild(xe1_3_1_1_12_2_1);
XmlElement xe1_3_1_1_12_2_2 = xmlDoc.CreateElement("Text");
xe1_3_1_1_12_2_2.InnerXml = "<body><p></p></body>";
xe1_3_1_1_12_2.AppendChild(xe1_3_1_1_12_2_2);
XmlElement xe1_3_1_1_13 = xmlDoc.CreateElement("MultilingualTextItem");
xe1_3_1_1_13.SetAttribute("ID", DecimalToHex(Number + 14));//设置该节点ID属性
xe1_3_1_1_13.SetAttribute("CompositionName", "Items");//设置该节点CompositionName属性
xe1_3_1_1.AppendChild(xe1_3_1_1_13);
XmlElement xe1_3_1_1_13_2 = xmlDoc.CreateElement("AttributeList");
xe1_3_1_1_13.AppendChild(xe1_3_1_1_13_2);
XmlElement xe1_3_1_1_13_2_1 = xmlDoc.CreateElement("Culture");
xe1_3_1_1_13_2_1.InnerText = "ro-RO";
xe1_3_1_1_13_2.AppendChild(xe1_3_1_1_13_2_1);
XmlElement xe1_3_1_1_13_2_2 = xmlDoc.CreateElement("Text");
xe1_3_1_1_13_2_2.InnerXml = "<body><p></p></body>";
xe1_3_1_1_13_2.AppendChild(xe1_3_1_1_13_2_2);
XmlElement xe1_3_1_1_14 = xmlDoc.CreateElement("MultilingualTextItem");
xe1_3_1_1_14.SetAttribute("ID", DecimalToHex(Number + 15));//设置该节点ID属性
xe1_3_1_1_14.SetAttribute("CompositionName", "Items");//设置该节点CompositionName属性
xe1_3_1_1.AppendChild(xe1_3_1_1_14);
XmlElement xe1_3_1_1_14_2 = xmlDoc.CreateElement("AttributeList");
xe1_3_1_1_14.AppendChild(xe1_3_1_1_14_2);
XmlElement xe1_3_1_1_14_2_1 = xmlDoc.CreateElement("Culture");
xe1_3_1_1_14_2_1.InnerText = "en-US";
xe1_3_1_1_14_2.AppendChild(xe1_3_1_1_14_2_1);
XmlElement xe1_3_1_1_14_2_2 = xmlDoc.CreateElement("Text");
xe1_3_1_1_14_2_2.InnerXml = "<body><p></p></body>";
xe1_3_1_1_14_2.AppendChild(xe1_3_1_1_14_2_2);
}
#endregion
输入输出XML文件分析
输入输出文本列表其实和上述的是一样的。
代码是和上面一样的,不同公司显示可能不同,我们就倾向于地址+图纸位置。只要修改其中显示代码就可以。
拆分IO
之前不是读取了Excel表里的IO变量,为了方便放入文本列表中,必须的拆分一下。
#region IO拆分字符串
public static string[,] GetIOStrings(string[,] result)
{
string[,] IOStrings = new string[1000, 5];
int i, j, k;
for (i = 1; result[i, 1] != null; i++)
{
//将%I1.2分成%I1和2
string[] Arr = result[i, 2].Split('.');
//获取%I1.2的I
IOStrings[i, 1] = Arr[0].Substring(1, 1);
//获取%I1.2的1
IOStrings[i, 2] = Arr[0].Substring(2);
//获取%I1.2的2
IOStrings[i, 3] = Arr[1];
//IO名称传递
IOStrings[i, 4] = result[i, 1];
}
return IOStrings;
}
#endregion
写入主流程函数
这里默认已经读取完Excel的数据
#region 写入HMI_IO文本列表的xml文件
public static void WriteHMIIOxml(string[,] Userresult1, string[,] Userresult2, string[,] Userresult3, string XmlFileName1, string XmlFileName2, string XmlFileName3)
{
#region 分离出输入和输出
int i, j, k;
int Input = 1;
int Output = 1;
string[,] InputString = new string[1000, 4];
string[,] OutputString = new string[1000, 4];
string[,] result1 = BaseData.GetIOStrings(Userresult1);
string[,] result2 = BaseData.GetIOStrings(Userresult2);
string[,] result3 = BaseData.GetIOStrings(Userresult3);
for (i = 1; result1[i, 1] != null; i++)
{
if (result1[i, 1] == "I")
{
//第一个是小数点前数,第二个是小数点后数,第三个是名字
InputString[Input, 1] = result1[i, 2];
InputString[Input, 2] = result1[i, 3];
InputString[Input, 3] = result1[i, 4];
Input++;
}
if (result1[i, 1] == "Q")
{
OutputString[Output, 1] = result1[i, 2];
OutputString[Output, 2] = result1[i, 3];
OutputString[Output, 3] = result1[i, 4];
Output++;
}
}
for (i = 1; result2[i, 1] != null; i++)
{
if (result2[i, 1] == "I")
{
//第一个是小数点前数,第二个是小数点后数,第三个是名字
InputString[Input, 1] = result2[i, 2];
InputString[Input, 2] = result2[i, 3];
InputString[Input, 3] = result2[i, 4];
Input++;
}
if (result2[i, 1] == "Q")
{
OutputString[Output, 1] = result2[i, 2];
OutputString[Output, 2] = result2[i, 3];
OutputString[Output, 3] = result2[i, 4];
Output++;
}
}
for (i = 1; result3[i, 1] != null; i++)
{
if (result3[i, 1] == "I")
{
//第一个是小数点前数,第二个是小数点后数,第三个是名字
InputString[Input, 1] = result3[i, 2];
InputString[Input, 2] = result3[i, 3];
InputString[Input, 3] = result3[i, 4];
Input++;
}
if (result3[i, 1] == "Q")
{
OutputString[Output, 1] = result3[i, 2];
OutputString[Output, 2] = result3[i, 3];
OutputString[Output, 3] = result3[i, 4];
Output++;
}
}
#endregion
XmlDocument xmlDoc = new XmlDocument();
#region 写入总的IO显示Xml-----------1
//获取出现过的IO的地址
int[] AllIOstrings = new int[1000];
k = 1;
for (i = 0; i < 1000; i++)
{
for (j = 1; j < 1000; j++)
{
if (InputString[j, 2] == i.ToString() || OutputString[j, 2] == i.ToString())
{
AllIOstrings[k] = i;
k++;
break;
}
}
}
//得出IO地址中的最大数
int max = 0;
for (i = 1; i < k; i++)
{
if (AllIOstrings[i] > max)
{
max = AllIOstrings[i];
}
}
//加载xml文件,文件
xmlDoc.Load(XmlFileName1);
// 找到需要添加元素的节点
//XmlNode node = xmlDoc.SelectSingleNode("//MultilingualTextItem[@ID='12']");
//查找要修改的节点
XmlNode xns = xmlDoc.SelectSingleNode("Document/Hmi.TextGraphicList.TextList/ObjectList");
//移出当前所有改节点下子节点
xns.RemoveAll();
//获取要添加位置的根节点
XmlElement rootElement = (XmlElement)xns;
//主节点的节点创建
#region <MultilingualText ID="1" CompositionName="Comment">
string str;
i = 1;
str = DecimalToHex(i);
XmlElement xe1 = xmlDoc.CreateElement("MultilingualText");//创建一个节点
xe1.SetAttribute("ID", str);//设置该节点ID属性
xe1.SetAttribute("CompositionName", "Comment");//设置该节点CompositionName属性
XmlElement xe1_2 = xmlDoc.CreateElement("ObjectList");
xe1.AppendChild(xe1_2);
str = DecimalToHex(i + 1);
BaseData.IOxmlCreatXelmentID_1(str, xmlDoc, xe1_2, "zh-CN");
str = DecimalToHex(i + 2);
BaseData.IOxmlCreatXelmentID_1(str, xmlDoc, xe1_2, "en-GB");
str = DecimalToHex(i + 3);
BaseData.IOxmlCreatXelmentID_1(str, xmlDoc, xe1_2, "de-DE");
str = DecimalToHex(i + 4);
BaseData.IOxmlCreatXelmentID_1(str, xmlDoc, xe1_2, "cs-CZ");
str = DecimalToHex(i + 5);
BaseData.IOxmlCreatXelmentID_1(str, xmlDoc, xe1_2, "es-ES");
str = DecimalToHex(i + 6);
BaseData.IOxmlCreatXelmentID_1(str, xmlDoc, xe1_2, "fr-FR");
str = DecimalToHex(i + 7);
BaseData.IOxmlCreatXelmentID_1(str, xmlDoc, xe1_2, "hu-HU");
str = DecimalToHex(i + 8);
BaseData.IOxmlCreatXelmentID_1(str, xmlDoc, xe1_2, "it-IT");
str = DecimalToHex(i + 9);
BaseData.IOxmlCreatXelmentID_1(str, xmlDoc, xe1_2, "pl-PL");
str = DecimalToHex(i + 10);
BaseData.IOxmlCreatXelmentID_1(str, xmlDoc, xe1_2, "ru-RU");
str = DecimalToHex(i + 11);
BaseData.IOxmlCreatXelmentID_1(str, xmlDoc, xe1_2, "sv-SE");
str = DecimalToHex(i + 12);
BaseData.IOxmlCreatXelmentID_1(str, xmlDoc, xe1_2, "pt-BR");
str = DecimalToHex(i + 13);
BaseData.IOxmlCreatXelmentID_1(str, xmlDoc, xe1_2, "ro-RO");
str = DecimalToHex(i + 14);
BaseData.IOxmlCreatXelmentID_1(str, xmlDoc, xe1_2, "en-US");
rootElement.AppendChild(xe1);
#endregion
//显示节点的节点创建
i = 16;
for (j = 0; j <= max; j = j + 2)
{
foreach (int ints in AllIOstrings)
{
if (ints == j)
{
BaseData.IOxmlCreatXelmentID_1_Other_ALLIO(i, xmlDoc, rootElement, j, XmlFileName1);
i = i + 16;
break;
}
}
}
// 保存修改后的XML文件
xmlDoc.Save(XmlFileName1);
#endregion
#region 写入输入的IO显示xml---------2
//加载xml文件,文件
xmlDoc.Load(XmlFileName2);
// 找到需要添加元素的节点
//XmlNode node = xmlDoc.SelectSingleNode("//MultilingualTextItem[@ID='12']");
//查找要修改的节点
xns = xmlDoc.SelectSingleNode("Document/Hmi.TextGraphicList.TextList/ObjectList");
//移出当前所有改节点下子节点
xns.RemoveAll();
//获取要添加位置的根节点
rootElement = (XmlElement)xns;
//主节点的节点创建
#region <MultilingualText ID="1" CompositionName="Comment">
i = 1;
str = DecimalToHex(i);
xe1 = xmlDoc.CreateElement("MultilingualText");//创建一个节点
xe1.SetAttribute("ID", str);//设置该节点ID属性
xe1.SetAttribute("CompositionName", "Comment");//设置该节点CompositionName属性
xe1_2 = xmlDoc.CreateElement("ObjectList");
xe1.AppendChild(xe1_2);
str = DecimalToHex(i + 1);
BaseData.IOxmlCreatXelmentID_1(str, xmlDoc, xe1_2, "zh-CN");
str = DecimalToHex(i + 2);
BaseData.IOxmlCreatXelmentID_1(str, xmlDoc, xe1_2, "en-GB");
str = DecimalToHex(i + 3);
BaseData.IOxmlCreatXelmentID_1(str, xmlDoc, xe1_2, "de-DE");
str = DecimalToHex(i + 4);
BaseData.IOxmlCreatXelmentID_1(str, xmlDoc, xe1_2, "cs-CZ");
str = DecimalToHex(i + 5);
BaseData.IOxmlCreatXelmentID_1(str, xmlDoc, xe1_2, "es-ES");
str = DecimalToHex(i + 6);
BaseData.IOxmlCreatXelmentID_1(str, xmlDoc, xe1_2, "fr-FR");
str = DecimalToHex(i + 7);
BaseData.IOxmlCreatXelmentID_1(str, xmlDoc, xe1_2, "hu-HU");
str = DecimalToHex(i + 8);
BaseData.IOxmlCreatXelmentID_1(str, xmlDoc, xe1_2, "it-IT");
str = DecimalToHex(i + 9);
BaseData.IOxmlCreatXelmentID_1(str, xmlDoc, xe1_2, "pl-PL");
str = DecimalToHex(i + 10);
BaseData.IOxmlCreatXelmentID_1(str, xmlDoc, xe1_2, "ru-RU");
str = DecimalToHex(i + 11);
BaseData.IOxmlCreatXelmentID_1(str, xmlDoc, xe1_2, "sv-SE");
str = DecimalToHex(i + 12);
BaseData.IOxmlCreatXelmentID_1(str, xmlDoc, xe1_2, "pt-BR");
str = DecimalToHex(i + 13);
BaseData.IOxmlCreatXelmentID_1(str, xmlDoc, xe1_2, "ro-RO");
str = DecimalToHex(i + 14);
BaseData.IOxmlCreatXelmentID_1(str, xmlDoc, xe1_2, "en-US");
rootElement.AppendChild(xe1);
#endregion
//显示节点的节点创建
i = 16;
for (j = 1; j < Input; j++)
{
{
BaseData.IOxmlCreatXelmentID_1_Other_IO(i, xmlDoc, rootElement, InputString, j, XmlFileName2, "I");
i = i + 16;
}
}
// 保存修改后的XML文件
xmlDoc.Save(XmlFileName2);
#endregion
#region 写入输出的IO显示xml---------3
//加载xml文件,文件
xmlDoc.Load(XmlFileName3);
// 找到需要添加元素的节点
//XmlNode node = xmlDoc.SelectSingleNode("//MultilingualTextItem[@ID='12']");
//查找要修改的节点
xns = xmlDoc.SelectSingleNode("Document/Hmi.TextGraphicList.TextList/ObjectList");
//移出当前所有改节点下子节点
xns.RemoveAll();
//获取要添加位置的根节点
rootElement = (XmlElement)xns;
//主节点的节点创建
#region <MultilingualText ID="1" CompositionName="Comment">
i = 1;
str = DecimalToHex(i);
xe1 = xmlDoc.CreateElement("MultilingualText");//创建一个节点
xe1.SetAttribute("ID", str);//设置该节点ID属性
xe1.SetAttribute("CompositionName", "Comment");//设置该节点CompositionName属性
xe1_2 = xmlDoc.CreateElement("ObjectList");
xe1.AppendChild(xe1_2);
str = DecimalToHex(i + 1);
BaseData.IOxmlCreatXelmentID_1(str, xmlDoc, xe1_2, "zh-CN");
str = DecimalToHex(i + 2);
BaseData.IOxmlCreatXelmentID_1(str, xmlDoc, xe1_2, "en-GB");
str = DecimalToHex(i + 3);
BaseData.IOxmlCreatXelmentID_1(str, xmlDoc, xe1_2, "de-DE");
str = DecimalToHex(i + 4);
BaseData.IOxmlCreatXelmentID_1(str, xmlDoc, xe1_2, "cs-CZ");
str = DecimalToHex(i + 5);
BaseData.IOxmlCreatXelmentID_1(str, xmlDoc, xe1_2, "es-ES");
str = DecimalToHex(i + 6);
BaseData.IOxmlCreatXelmentID_1(str, xmlDoc, xe1_2, "fr-FR");
str = DecimalToHex(i + 7);
BaseData.IOxmlCreatXelmentID_1(str, xmlDoc, xe1_2, "hu-HU");
str = DecimalToHex(i + 8);
BaseData.IOxmlCreatXelmentID_1(str, xmlDoc, xe1_2, "it-IT");
str = DecimalToHex(i + 9);
BaseData.IOxmlCreatXelmentID_1(str, xmlDoc, xe1_2, "pl-PL");
str = DecimalToHex(i + 10);
BaseData.IOxmlCreatXelmentID_1(str, xmlDoc, xe1_2, "ru-RU");
str = DecimalToHex(i + 11);
BaseData.IOxmlCreatXelmentID_1(str, xmlDoc, xe1_2, "sv-SE");
str = DecimalToHex(i + 12);
BaseData.IOxmlCreatXelmentID_1(str, xmlDoc, xe1_2, "pt-BR");
str = DecimalToHex(i + 13);
BaseData.IOxmlCreatXelmentID_1(str, xmlDoc, xe1_2, "ro-RO");
str = DecimalToHex(i + 14);
BaseData.IOxmlCreatXelmentID_1(str, xmlDoc, xe1_2, "en-US");
rootElement.AppendChild(xe1);
#endregion
//显示节点的节点创建
i = 16;
for (j = 1; j < Output; j++)
{
{
BaseData.IOxmlCreatXelmentID_1_Other_IO(i, xmlDoc, rootElement, OutputString, j, XmlFileName3, "Q");
i = i + 16;
}
}
// 保存修改后的XML文件
xmlDoc.Save(XmlFileName3);
#endregion
}
#endregion
主流程
页面代码