使用linq将xml子元素添加到C#中的特定父节点
我有这样一个xml:使用linq将xml子元素添加到C#中的特定父节点,c#,xml,linq,C#,Xml,Linq,我有这样一个xml: <Equipment> <ModificationDate> <Data> </Data> </ModificationDate> </Equipment> <Equipment> <ModificationDate> <Data>
<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当前位置如果没有看到代码,就不可能说出你做错了什么,真的。请阅读有关如何编写更容易回答的问题的建议。