在元素XML VB.NET中添加元素

时间:2014-08-04 23:49:07

标签: xml vb.net linq

如何在另一个元素中添加元素。我确定这很容易但我似乎无法在vb.net中找到答案。我几乎需要一个看起来像这样的文件:

<Crop>
     <Name>CropName</Name>
     <Field>
        <Name>FieldName</Name>
           <Expense>
              <expense1></expense1>
              <expense2></expense2>
           </Expense>
     </Field>
</Crop
<Crop>
     <Name>CropName1</Name>
     <Field>
        <Name>FieldName</Name>
           <Expense>
              <expense1></expense1>
              <expense2></expense2>
           </Expense>
     </Field>
</Crop

我还需要帮助添加到此。所以我想说要添加到名为&#39; CropName1&#39;并添加另一个像我已经拥有的字段元素&#39; CropName1&#39;那么我将如何在vb.net中做到这一点。我愿意使用linq或其他任何东西。示例代码将是很有帮助的。请不要给我一个关于LINQ和xml教程的链接。我知道XML是如何工作的,不知道如何解决这个特殊问题,并认为我可以从你们那里得到一些示例代码。谢谢!

1 个答案:

答案 0 :(得分:0)

我喜欢在VB.NET中处理XML时使用XML literalsLINQ to XML

这是一个简单的例子:

' Create the root XElement
Dim xml = <Crops></Crops>
' Add a couple of <Crop>s, substituting the value of i into the names
For i = 0 To 1
    xml.Add(
        <Crop>
            <Name>CropName<%= i %></Name>
            <Field>
                <Name>FieldName</Name>
                <Expense>
                    <expense1></expense1>
                    <expense2></expense2>
                </Expense>
            </Field>
        </Crop>
    )
Next
' Find the <Crop> element that contains <Name>CropName1</Name>
Dim crop1 = (From c In xml...<Crop> Where c.<Name>.Value = "CropName1").SingleOrDefault()
' Insert a new <Field> element
If crop1 IsNot Nothing Then
    crop1.Add(
        <Field>
            <Name>FieldName2</Name>
            <Expense>
                <expense1></expense1>
                <expense2></expense2>
            </Expense>
        </Field>
    )
End If