簡體   English   中英

如何檢查vb.net中xml文件中是否存在值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM