0

我正在尝试检查 xml 文件中是否存在字符串。如果它不存在,我必须将该字符串添加到 xml 文件中。

我的 xml 文件如下所示:

  <Employee>
      <Emp>
        <Name id="1">   A     </Name>
        <Name id="2">   C     </Name>
        <Name id="3">   D     </Name>
       </Emp>
  </Employee>

我想实现:

dim str as string = "b" 
if str exists in "xmlfile"
    'do something
else
    'add string to file
end if

我根本不是很熟悉 LINQ,但我知道我想做的事情可以使用 LINQ。我尝试了以下方法:

Dim employee = XElement.Load(someStream)
Dim emp = employee.Element("Emp")
If emp IsNot Nothing Then
    else
        'add string to xml file
End If

当我尝试这个时,我收到了错误:XElement未声明。

任何人都可以建议一种在没有 LINQ 的情况下在 VB.NET 中做我想做的事情的方法吗?或者如果我必须使用 LINQ,可以提供一个例子吗?

我正在使用 .net 2.0 (VB.NET)

4

2 回答 2

0

您需要遍历 Emp 的孩子。现在,您的代码只是检查<Emp>元素是否存在。我想你真正想要做的是检查每个<Name>元素,看看它的内部文本是否包含你想要的字符串。

您也可以尝试使用 XmlDocument 和 XmlNode,如果 XElement 给您带来麻烦,它们应该在 .NET 2.0 中可用。

于 2012-07-24T15:10:09.473 回答
0

我认为你想要的是更像这样的东西:

Dim employeeData As XDocument
Dim employeeElements as List(Of XElement)
Dim numberOfNames as Integer = 0

employeeData = XDocument.Load(someStream)

employeeElements = (From elements In employeeData.Decendants()
                    Where (elements.Name.LocalName.ToString() = "Emp")
                    Select elements).ToList()

For Each employee In employeeElements
    If (employee.<Name>.Value = "B") Then
        numberOfNames = numberOfNames + 1
    End If
Next

If numberOfNames > 0 Then
    'Insert "B" into xml
End If

因此,这是一个使用 XDocument 并进行交互的示例,尽管 user1512185 建议使用示例 LINQ 表达式来获取要迭代的 XElement 列表。

这是对我在我的一个应用程序中所做的事情的修改。但是我没有插入到 xml 中,所以我不确定我可以在那里帮助你。

于 2012-07-24T15:36:23.730 回答