我正在尝试检查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)
答案 0 :(得分:0)
你需要遍历Emp的孩子。现在,您的代码只是检查<Emp>
元素是否存在。我假设你真正想做的是检查每个<Name>
元素,看看它的内部文本是否包含你想要的字符串。
你也可以尝试使用XmlDocument和XmlNode,如果XElement给你带来麻烦,它应该在.NET 2.0中可用。
答案 1 :(得分: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表达式来获取要迭代的XElements列表。
这是我在其中一个应用中执行的操作的修改。但是我没有插入xml,所以我不确定我能帮助你。