LINQ to XML -How to use XPass for elements selection

I am just starting to work with LINQ to XML and tried to find child document similar to the following:
 xml.Element("client/child");
But it throw exception
System.Xml.XmlException: The '/' character, hexadecimal value 0x2F, cannot be included in a name.
The reason is that LINQ to XML doesn't directly support XPAth
Fortunately there are extensions, that allow to use XPath for XElement search/selection.

using System.Xml.XPath;

and then

var clients = xml.XPathSelectElements ( "client/child" );

Consider, if required ,an XPathSelectElements overload  with namespace management.

Note, that XPath extensions are actually backward compatibility feature, and Microsoft recommends to use native XElement methods, such as Descendants ,Elements,Element etc.  See Comparison of XPath and LINQ to XML
 However K. Scott Allen  prefers to mix LINQ and XPath  to have concise code.

See also Concepts LINQ to XML for XPath Users

Useful tip:where clause and "Possible System.NullReferenceException"

  • Share This Post:
  • Share on Twitter
  • Share on Facebook
  • Share on Technorati

Misleading error message when NullReferenceException thrown within Comparer

We've got an error messgae from custom comparer:
IComparer (or the IComparable methods it relies upon) did not
return zero when Array.Sort called x. CompareTo(x).
 
After investigation it was found, that the error was caused by NullReferenceException,
 thrown within Comparer.
I've suggested to Microsoft , that the actual NullReferenceException error message should be shown instead of this misleading one.
See also similar feedback

 
  • Share This Post:
  • Share on Twitter
  • Share on Facebook
  • Share on Technorati
«May»
SunMonTueWedThuFriSat
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456