2012-07-24 55 views
0

我想檢查一個字符串是否存在於xml文件中。如果它不存在,我必須將該字符串添加到xml文件。如何檢查一個值是否存在於xml文件或不在vb.net

我的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

如果'XElement'沒有聲明,那麼你需要'Imports System.Xml.Linq'在頂部。 – 2012-07-24 15:03:33

+0

對不起,即使我試過這個,但它給錯誤,我希望我可能需要添加任何屬性或別的東西... – user5464541 2012-07-24 15:08:36

回答

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,所以我不知道我可以幫你。

0

您需要遍歷Emp的子項。現在,您的代碼只需檢查<Emp>元素是否存在。我想你實際上想要做的是檢查每個<Name>元素,看看它的內部文本是否包含你想要的字符串。

你也可以嘗試使用XmlDocument和XmlNode,如果XElement給你帶來麻煩,它應該在.NET 2.0中可用。

相關問題