2014-12-02 3 views
0

Я думал, что XML чувствителен к регистру? Я ищу файлы XML, чтобы найти поле, которое будет либо < Заголовок>, либо < header>. Я использую следующий код:XDocument.Descendents не чувствителен к регистру

If Not xmlDoc.Descendants("Header") Is Nothing Then 
    do something 
ElseIf Not xmlDoc.Descendants("header") Is Nothing Then 
    do something else 
Else 
    Print(1, "No header information found" & vbCrLf) 
    messageText.Text = "Validation Complete" 
    Return false 
End If 

Так что я смотрю на файл XML, который имеет < заголовок> и строка «сделать что-то» бежится! Как я могу сделать это чувствительным к делу thingymabob?

ответ

0

XDocument.Descendantsявляется чувствителен к регистру, но он не возвращает Nothing, когда нет подходящих элементов не найдены - она ​​возвращает IEnumerable(Of XElement) без каких-либо элементов. Таким образом, вы могли бы переписать логику что-то вроде этого:

If xmlDoc.Descendants("Header").Any() Then 
    ' do something - <Header> found 
ElseIf xmlDoc.Descendants("header").Any() Then 
    ' do something else - <header> found 
Else 
    Print(1, "No header information found" & vbCrLf) 
    messageText.Text = "Validation Complete" 
    Return false 
End If 

Вы можете также использовать поддержку VB.Net в XML для литералов, которые я нахожу немного более читаемым:

If xmlDoc...<Header>.Any() Then 
    ' do something - <Header> found 
ElseIf xmlDoc...<header>.Any() Then 
    ' do something else - <header> found 
Else 
    '... 
End If 
Смежные вопросы