Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.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
使用linq将xml子元素添加到C#中的特定父节点_C#_Xml_Linq - Fatal编程技术网

使用linq将xml子元素添加到C#中的特定父节点

使用linq将xml子元素添加到C#中的特定父节点,c#,xml,linq,C#,Xml,Linq,我有这样一个xml: <Equipment> <ModificationDate> <Data> </Data> </ModificationDate> </Equipment> <Equipment> <ModificationDate> <Data>

我有这样一个xml:

<Equipment>
     <ModificationDate>
             <Data>
             </Data> 
     </ModificationDate>
</Equipment>
<Equipment>
     <ModificationDate>
             <Data>
                  <Table>
                       <Name />
                       <Value />
                       <Number />
                  </Table>
                  <Table>
                       <Name />
                       <Value />
                       <Number />
                  </Table>
                  <Table>
                       <Name />
                       <Value />
                       <Number />
                  </Table>
             </Data> 
     </ModificationDate>
</Equipment>
<Equipment>
     <ModificationDate>
             <Data>
                  <Table>
                       <Name />
                       <Value />
                       <Number />
                       <Name />
                       <Value />
                       <Number />
                       <Name />
                       <Value />
                       <Number />
                  </Table>
                  <Table />
                  <Table />
             </Data> 
     </ModificationDate>
</Equipment>

我需要将此序列添加到数据节点:

<Table>
       <Name />
       <Value />
       <Number />
</Table>

问题是我需要在数据节点中添加许多表节点。如果iot是唯一的一个,我现在就已经完成了

每当我尝试添加1个表节点及其元素时,我都会正确地执行第一个操作,但是当我尝试对较新的节点执行相同操作时,我会创建表节点,但其元素都会转到第一个表节点,而其他节点则为空

这就是为什么我想知道这里是否有人知道如何使用Tabel索引添加新的表节点和元素

或者任何其他方式,我所需要做的就是将元素添加到我想要的特定表节点中,记住它们都是相同的结构并保持相同的名称

我到处找了,还没有找到答案

编辑:

我会尽量解释得更好。我有第一个xml,需要将第二个结构添加到数据字段中。问题在于,第二个结构在数据内部会重复大约500次

我可以加上那500张桌子。。。但是,当我尝试将每个数字/值/名称添加到对应的表中时,它不起作用。我只能将number/value/name添加到创建的第一个表中。这就是为什么,在某种程度上,我需要分别访问每个表并向其中添加元素,这样它就可以保持这种结构。最后的xml应该如下所示:

<Equipment>
     <ModificationDate>
             <Data>
             </Data> 
     </ModificationDate>
</Equipment>
<Equipment>
     <ModificationDate>
             <Data>
                  <Table>
                       <Name />
                       <Value />
                       <Number />
                  </Table>
                  <Table>
                       <Name />
                       <Value />
                       <Number />
                  </Table>
                  <Table>
                       <Name />
                       <Value />
                       <Number />
                  </Table>
             </Data> 
     </ModificationDate>
</Equipment>
<Equipment>
     <ModificationDate>
             <Data>
                  <Table>
                       <Name />
                       <Value />
                       <Number />
                       <Name />
                       <Value />
                       <Number />
                       <Name />
                       <Value />
                       <Number />
                  </Table>
                  <Table />
                  <Table />
             </Data> 
     </ModificationDate>
</Equipment>

但结果是这样的:

<Equipment>
     <ModificationDate>
             <Data>
             </Data> 
     </ModificationDate>
</Equipment>
<Equipment>
     <ModificationDate>
             <Data>
                  <Table>
                       <Name />
                       <Value />
                       <Number />
                  </Table>
                  <Table>
                       <Name />
                       <Value />
                       <Number />
                  </Table>
                  <Table>
                       <Name />
                       <Value />
                       <Number />
                  </Table>
             </Data> 
     </ModificationDate>
</Equipment>
<Equipment>
     <ModificationDate>
             <Data>
                  <Table>
                       <Name />
                       <Value />
                       <Number />
                       <Name />
                       <Value />
                       <Number />
                       <Name />
                       <Value />
                       <Number />
                  </Table>
                  <Table />
                  <Table />
             </Data> 
     </ModificationDate>
</Equipment>

请帮帮我

还不完全清楚您需要什么,但您始终可以使用它通过索引访问表元素:

var table = doc.Root                         // Equipment
               .Element("ModificationData")  // ModificationData
               .Element("Data")              // Data
               .Elements("Table")
               .ElementAt(index);

// Now add to that element

另一方面,如果您要为每个名称/值/编号添加一个新的表节点,我不明白您为什么需要通过索引访问它们…

明天早上我会尝试。我刚离开我的工作,代码就在那里。是的,我需要为每个数字/名称/值添加一个新表。问题是,当我尝试添加新的值/编号/名称时,它只会进入我创建的第一个表。其他人仍然存在empty@morcillo当前位置如果没有看到代码,就不可能说出你做错了什么,真的。请阅读有关如何编写更容易回答的问题的建议。