Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 通过C读取和编辑XML文件中的特定XML代码#_C#_Xml_Parsing - Fatal编程技术网

C# 通过C读取和编辑XML文件中的特定XML代码#

C# 通过C读取和编辑XML文件中的特定XML代码#,c#,xml,parsing,C#,Xml,Parsing,我正在尝试用C语言创建一个程序,该程序将打开Main.XML文件中提到的几个XML文件,查找某些名称标记,并为它们添加后缀(blablabla_name,blablablabla_unit_name,Location_code,WO_name)。问题是名称是关系属性,根据它们所在的文件具有不同的标记。例如,它可以是structure.xml文件中的,但也可以是设备.xml文件中的 因此,我所做的是创建一个XML解析程序,该程序将获取Main.XML文件中的所有链接,打开每个文件,读取并查找我要查

我正在尝试用C语言创建一个程序,该程序将打开
Main.XML
文件中提到的几个XML文件,查找某些名称标记,并为它们添加后缀(
blablabla_name
blablablabla_unit_name
Location_code
WO_name
)。问题是名称是关系属性,根据它们所在的文件具有不同的标记。例如,它可以是
structure.xml
文件中的
,但也可以是
设备.xml
文件中的

因此,我所做的是创建一个XML解析程序,该程序将获取
Main.XML
文件中的所有链接,打开每个文件,读取并查找我要查找的名称标记,并将它们的值(
innertext
)保存在字符串列表中。其目的是,在读取并存储列表中所有必需的值之后,我希望在每个文件上逐个索引地迭代,并在另一个文件中替换
&&
的列表
innertext
中的值。例如,使用新值+后缀

我已经完成了将近80%的工作,但我正在努力解决的问题是,后缀被添加了不止一次。这是因为我想不出一个条件,将写入方法限制为仅在读取过程完成后执行,但同时也在每个文件上执行

这是我的密码:

private void按钮2\u单击(对象发送者,事件参数e)
{
if(textBox1.Text==null)
MessageBox.Show(“请选择一个文件夹”);
其他的
{
字符串后缀=textBox2.Text;
字符串位置=textBox3.Text;
string workOrder=textBox4.Text;
列表内容列表=新列表();
如果((postfix.Length>0)和&(postfix.Length 0)
替换文本(文件名、名称列表、后缀);
GetUnitName(文件名,unitNameList);
如果(unitNameList.Count>0)
ReplaceText(文件名、单元名列表、后缀);
GetLocation(文件名、位置列表);
如果(locationList.Count>0)
替换文本(文件名、位置列表、位置);
GetWorkOrder(文件名,workOrderList);
如果(workOrderList.Count>0)
ReplaceText(文件名、workOrderList、workOrder);
i++;
}
}
其他的
{
Show(“请为后缀输入至少1个字符或最多2个字符”);
}
}
}
public void GetName(字符串url、列表)
{
XmlDocument doc=新的XmlDocument();
文档加载(url);
string search=Path.GetFileNameWithoutExtension(url);
XmlNodeList nodeList=doc.GetElementsByTagName(搜索+“_名称”);
List innerList=新列表();
尝试
{
如果(nodeList.Count>0)
{
int i=0;
而(i0)
{
int i=0;
而(i0)
{
int i=0;
而(i0)
{
int i=0;
而(i
下面是我正在处理的XML文件的一部分: