Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C# Linq to XML check if element exists

Tags:

I have an XML document as follows:

<Database>  <SMS>    <Number>"+447528349828"</Number>     <Date>"09/06/24</Date>     <Time>13:35:01"</Time>     <Message>"Stop"</Message>   </SMS>  <SMS>    <Number>"+447528349828"</Number>     <Date>"09/06/24</Date>     <Time>13:35:01"</Time>     <Message>"Stop"</Message>   </SMS> </Database> 

I am trying to check whether the number child node of the parent SMS node exists in the document (for validation purposes to avoid inserting duplicate data).

Any advice on a potential solution?

EDIT: The element will be compared to an input string. For example if(inputNumber == xmlDocNumber){ //Don't Insert New Element }

like image 366
Goober Avatar asked Jun 24 '09 16:06

Goober


People also ask

Bahasa C digunakan untuk apa?

Meskipun C dibuat untuk memprogram sistem dan jaringan komputer namun bahasa ini juga sering digunakan dalam mengembangkan software aplikasi. C juga banyak dipakai oleh berbagai jenis platform sistem operasi dan arsitektur komputer, bahkan terdapat beberepa compiler yang sangat populer telah tersedia.

C dalam Latin berapa?

C adalah huruf ketiga dalam alfabet Latin. Dalam bahasa Indonesia, huruf ini disebut ce (dibaca [tʃe]).

Bahasa C dibuat pertama kali oleh siapa dan tahun berapa?

Bahasa pemrograman C ini dikembangkan antara tahun 1969 – 1972 oleh Dennis Ritchie. Yang kemudian dipakai untuk menulis ulang sistem operasi UNIX. Selain untuk mengembangkan UNIX, bahasa C juga dirilis sebagai bahasa pemrograman umum.


1 Answers

I'll suggest a slightly different tack to using Count() - use Any(). The advantage is that Any() can stop as soon as it gets any matches at all:

var smsWithNoNumber = main.Descendants("SMS")                           .Where(x => !x.Elements("Number").Any()); 

In this case it won't make much odds, but in cases where Count() might have to count a million hits just to tell you that there was at least one, it's a useful trick to know. I'd say it's also a clearer indicator of what you mean.

like image 149
Jon Skeet Avatar answered Oct 04 '22 15:10

Jon Skeet