2012-03-19 53 views
1

我有一个是这样的一个xml:在C#中添加XML子元素以特定的父节点与LINQ

<Equipment> 
    <ModificationDate> 
      <Data> 
      </Data> 
    </ModificationDate> 
</Equipment> 

我需要这个序列添加到数据节点:

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

的问题是我需要在数据节点中添加许多表节点。如果IOT只有一个我现在就完成了。

无论何时我尝试添加1个表节点及其元素,我都会正确地执行第一个节点,但是当我尝试对新节点执行相同操作时,我创建了表节点,但其元素都转到第一个表节点,让其他人空着。

这就是为什么我想知道这里的任何人是否知道如何添加新的Table节点并通过使用Tabel索引来添加元素。

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

我已经搜查高和低,都没有想出答案

编辑:

我会试着更好地解释。我有第一个XML,我需要将第二个结构添加到数据字段。问题在于第二个结构将在Data内部重复约500次。

我可以添加这些500表...但是当我尝试将每个数字/值/名称添加到其对应的表,它不起作用。我只能将数字/值/名称添加到创建的第一个表格中。这就是为什么,在某种程度上,我需要分别访问每个表并向其添加元素,因此它将保持该结构。最终的XML应该是这个样子:

<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> 

请帮助我。

回答

3

这不是完全清楚你需要什么,但你可以随时使用这个由指数来获得一个表元素:

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

// Now add to that element 

在另一方面,如果你添加一个新的表节点对于每个名称/值/数字,我不明白为什么你需要通过索引访问它们...

+0

明天早上我会试试。我只是离开了我的工作,代码就在那里。是的,我需要为每个号码/名称/值添加一个新表。探针是当我尝试添加新的值/数字/名称,它只是去我创建的第一个表。其他人仍然是空的 – morcillo 2012-03-19 23:40:42

+0

@morcillo:呃,真的不可能在没有看到代码的情况下说出你做错了什么。请阅读http://tinyurl.com/so-hints,了解如何编写更容易回答的问题。 – 2012-03-20 06:43:36

相关问题