[英]How to check whether a value exists in xml file or not in vb.net
我正在嘗試檢查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)
您需要遍歷Emp的孩子。 現在,您的代碼只是檢查<Emp>
元素是否存在。 我假設您實際上想要做的是檢查每個<Name>
元素,並查看其內部文本是否包含所需的字符串。
您還可以嘗試使用XmlDocument和XmlNode,如果XElement給您帶來麻煩,它們應在.NET 2.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中,所以不確定是否可以為您提供幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.