{"id":2853,"date":"2009-04-29T20:20:00","date_gmt":"2009-04-29T20:20:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/vbteam\/2009\/04\/29\/when-using-linq-to-xml-why-dont-i-get-results-if-i-dont-import-a-xml-namespace-daniel-walzenbach\/"},"modified":"2024-07-05T13:20:50","modified_gmt":"2024-07-05T20:20:50","slug":"when-using-linq-to-xml-why-dont-i-get-results-if-i-dont-import-a-xml-namespace-daniel-walzenbach","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/vbteam\/when-using-linq-to-xml-why-dont-i-get-results-if-i-dont-import-a-xml-namespace-daniel-walzenbach\/","title":{"rendered":"When using LINQ to XML why don&#8217;t I get results if I don&#8217;t import a XML namespace (Daniel Walzenbach)?"},"content":{"rendered":"<p>Hi,<\/p>\n<p>I <a href=\"http:\/\/blogs.msdn.com\/vbteam\/archive\/2009\/04\/23\/how-to-get-a-list-of-all-files-of-a-directory-subdirectories-included-daniel-walzenbach.aspx\">posted a bit of code<\/a> the other day which I used to get a list of all <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/18yz4be4(VS.80).aspx\">Code Snippets<\/a> we ship in <a href=\"http:\/\/msdn.microsoft.com\/en-us\/vstudio\/default.aspx\">Visual Studio<\/a>. In a nutshell, I used <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/system.xml.linq.xelement.load.aspx\" target=\"_blank\" rel=\"noopener\">XElement.Load<\/a> to create a new XML document from a filename from which I then read elements from (There are way to many &lsquo;&rdquo;from&rdquo; in this sentence \ud83d\ude09 ). Unfortunately, I forgot to import the <a href=\"http:\/\/msdn.microsoft.com\/en-us\/magazine\/cc302166.aspx\">XML Namespace<\/a> in the code I posted which caused my code not to return any results (but instead provided me with a brilliant opportunity to write another post. hehe \ud83d\ude42 ).<\/p>\n<p>Let&rsquo;s have a look at the code which is causing trouble and a Code Snippets to understand what&rsquo;s going on (you can find the complete code including the <em>Snippet <\/em>class in <a href=\"http:\/\/blogs.msdn.com\/vbteam\/archive\/2009\/04\/23\/how-to-get-a-list-of-all-files-of-a-directory-subdirectories-included-daniel-walzenbach.aspx\">the aforementioned post<\/a>):<\/p>\n<table class=\"SourceCode\">\n<tbody>\n<tr>\n<td>\n<p><span>Dim<\/span><span> query = _<\/span><\/p>\n<p><span><span>&nbsp;&nbsp;&nbsp; <\/span><span>From<\/span> file <span>In<\/span> <span>My<\/span>.Computer.FileSystem.GetFiles( _<\/span><\/p>\n<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span>&#8220;C:Program FilesMicrosoft Visual Studio 10.0&#8221;<\/span>, _<\/span><\/p>\n<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>FileIO.SearchOption.SearchAllSubDirectories) _<\/span><\/p>\n<p><span><span>&nbsp;&nbsp;&nbsp; <\/span><span>Where<\/span> file.EndsWith(<span>&#8220;.snippet&#8221;<\/span>) _<\/span><\/p>\n<p><span><span>&nbsp;&nbsp;&nbsp; <\/span><span>Order<\/span> <span>By<\/span> file<\/span><\/p>\n<p><span><\/span><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><span>Dim<\/span><span> snippets <span>As<\/span> <span>New<\/span> List(<span>Of<\/span> Snippet)<\/span><\/p>\n<p><span>Dim<\/span><span> snippetDocument <span>As<\/span> XElement<\/span><\/p>\n<p><span>Dim<\/span><span> snippet <span>As<\/span> Snippet<\/span><\/p>\n<p><span><\/span><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><span>For<\/span><span> <span>Each<\/span> item <span>In<\/span> query<\/span><\/p>\n<p><span><span>&nbsp;&nbsp;&nbsp; <\/span>snippetDocument = XElement.Load(item)<\/span><\/p>\n<p><span><span>&nbsp;&nbsp;&nbsp; <\/span><span>If<\/span> snippetDocument&#8230;<span>&lt;<\/span>Title<span>&gt;<\/span>.Value <span>IsNot<\/span> <span>Nothing<\/span> <span>Then<\/span><\/span><\/p>\n<p><span><\/span><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>snippet = <span>New<\/span> Snippet <span>With<\/span> {.Title = snippetDocument&#8230;<span>&lt;<\/span>Title<span>&gt;<\/span>.Value.ToString _<\/span><\/p>\n<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>, .Description = snippetDocument&#8230;<span>&lt;<\/span>Description<span>&gt;<\/span>.Value.ToString _<\/span><\/p>\n<p><span><span>&nbsp; <\/span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>, .Path = item _<\/span><\/p>\n<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>, .Size = <span>New<\/span> System.IO.FileInfo(item).Length}<\/span><\/p>\n<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>snippets.Add(snippet)<\/span><\/p>\n<p><span><span>&nbsp;&nbsp;&nbsp; <\/span><span>End<\/span> <span>If<\/span><\/span><\/p>\n<p><span>Next<\/span><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp; Code Snippet<\/p>\n<table class=\"SourceCode\">\n<tbody>\n<tr>\n<td>\n<p><span>&lt;?<\/span><span>xml<\/span><span> <\/span><span>version<\/span><span>=<\/span><span>&#8220;<span>1.0<\/span>&#8220;<span> <\/span><span>encoding<\/span><span>=<\/span>&#8220;<span>utf-8<\/span>&#8220;<span>?&gt;<\/span><\/span><\/p>\n<p><span>&lt;<\/span><span>CodeSnippets<\/span><span> <\/span><span>xmlns<\/span><span>=<\/span><span>&#8220;<span>http:\/\/schemas.microsoft.com\/VisualStudio\/2005\/CodeSnippet<\/span>&#8220;<span>&gt;<\/span><\/span><\/p>\n<p><span><span>&nbsp; <\/span>&lt;<\/span><span>CodeSnippet<\/span><span> <\/span><span>Format<\/span><span>=<\/span><span>&#8220;<span>1.0.0<\/span>&#8220;<span>&gt;<\/span><\/span><\/p>\n<p><span><span>&nbsp;&nbsp;&nbsp; <\/span>&lt;<\/span><span>Header<\/span><span>&gt;<\/span><\/p>\n<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>&lt;<\/span><span>Title<\/span><span>&gt;<\/span><span>Activate a Running Application by Name<span>&lt;\/<\/span><span>Title<\/span><span>&gt;<\/span><\/span><\/p>\n<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>&lt;<\/span><span>Author<\/span><span>&gt;<\/span><span>Microsoft Corporation<span>&lt;\/<\/span><span>Author<\/span><span>&gt;<\/span><\/span><\/p>\n<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>&lt;<\/span><span>Description<\/span><span>&gt;<\/span><span>Activates a running application using the name of the application.<span>&lt;\/<\/span><span>Description<\/span><span>&gt;<\/span><\/span><\/p>\n<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>&lt;<\/span><span>Shortcut<\/span><span>&gt;<\/span><span>appActNa<span>&lt;\/<\/span><span>Shortcut<\/span><span>&gt;<\/span><\/span><\/p>\n<p><span><span>&nbsp;&nbsp;&nbsp; <\/span>&lt;\/<\/span><span>Header<\/span><span>&gt;<\/span><\/p>\n<p><span><span>&nbsp;&nbsp;&nbsp; <\/span>&lt;<\/span><span>Snippet<\/span><span>&gt;<\/span><\/p>\n<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>&lt;<\/span><span>Imports<\/span><span>&gt;<\/span><\/p>\n<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>&lt;<\/span><span>Import<\/span><span>&gt;<\/span><\/p>\n<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>&lt;<\/span><span>Namespace<\/span><span>&gt;<\/span><span>Microsoft.VisualBasic<span>&lt;\/<\/span><span>Namespace<\/span><span>&gt;<\/span><\/span><\/p>\n<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>&lt;\/<\/span><span>Import<\/span><span>&gt;<\/span><\/p>\n<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>&lt;\/<\/span><span>Imports<\/span><span>&gt;<\/span><\/p>\n<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>&lt;<\/span><span>Declarations<\/span><span>&gt;<\/span><\/p>\n<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>&lt;<\/span><span>Literal<\/span><span>&gt;<\/span><\/p>\n<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>&lt;<\/span><span>ID<\/span><span>&gt;<\/span><span>applicationName<span>&lt;\/<\/span><span>ID<\/span><span>&gt;<\/span><\/span><\/p>\n<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>&lt;<\/span><span>Type<\/span><span>&gt;<\/span><span>String<span>&lt;\/<\/span><span>Type<\/span><span>&gt;<\/span><\/span><\/p>\n<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>&lt;<\/span><span>ToolTip<\/span><span>&gt;<\/span><span>Replace with the name of the application. This is often the title of the application window.<span>&lt;\/<\/span><span>ToolTip<\/span><span>&gt;<\/span><\/span><\/p>\n<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>&lt;<\/span><span>Default<\/span><span>&gt;<\/span><span>&#8220;Untitled &#8211; Notepad&#8221;<span>&lt;\/<\/span><span>Default<\/span><span>&gt;<\/span><\/span><\/p>\n<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>&lt;\/<\/span><span>Literal<\/span><span>&gt;<\/span><\/p>\n<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>&lt;\/<\/span><span>Declarations<\/span><span>&gt;<\/span><\/p>\n<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>&lt;<\/span><span>Code<\/span><span> <\/span><span>Language<\/span><span>=<\/span><span>&#8220;<span>VB<\/span>&#8220;<span> <\/span><span>Kind<\/span><span>=<\/span>&#8220;<span>method body<\/span>&#8220;<span>&gt;&lt;![CDATA[<\/span><span>AppActivate($applicationName$)<\/span><span>]]&gt;&lt;\/<\/span><span>Code<\/span><span>&gt;<\/span><\/span><\/p>\n<p><span><span>&nbsp;&nbsp;&nbsp; <\/span>&lt;\/<\/span><span>Snippet<\/span><span>&gt;<\/span><\/p>\n<p><span><span>&nbsp; <\/span>&lt;\/<\/span><span>CodeSnippet<\/span><span>&gt;<\/span><\/p>\n<p><span>&lt;\/<\/span><span>CodeSnippets<\/span><span>&gt;<\/span><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>As you can see there is a <span>&lt;<\/span><span>Title<\/span><span>&gt;<\/span> element in the the Code Snippet to which we are referring to in the code above&hellip; or are we?<\/p>\n<p>Let&rsquo;s dig a bit deeper, open the compiled program in <a href=\"http:\/\/reflector.red-gate.com\/\">.NET Reflector<\/a> and disassemble it (if you don&rsquo;t have .NET Reflector you have to stop reading NOW and get it!! Seriously, this tool is a life-safer and I&rsquo;ve learned soooo much using it!).<\/p>\n<p><img decoding=\"async\" src=\"\"> <\/p>\n<p>If you focus on the parts I highlighted in red in the above picture you can see that <span>&lt;<\/span><span>Title<\/span><span>&gt;<\/span> consists out of the XML name and the XML namespace (check out <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/bb299741.aspx\" target=\"_blank\" rel=\"noopener\">XName..::.Get Method (String, String)<\/a>). Since I didn&rsquo;t import the namespace in my program an empty namespace got used resulting in the <a href=\"http:\/\/en.wikipedia.org\/wiki\/Fully_qualified_name\" target=\"_blank\" rel=\"noopener\">qualified name<\/a> <font face=\"Courier New\">Title<\/font> which doesn&rsquo;t fit the namespace of the Code Snippet <font face=\"Courier New\">{http:\/\/schemas.microsoft.com\/VisualStudio\/2005\/CodeSnippet}Title<\/font>, hence my program didn&rsquo;t return any results.<\/p>\n<p>To solve this problem I added the following line of code to my program <\/p>\n<p><span>Imports<\/span><span> <span>&lt;<\/span><span>xmlns<\/span><span>=<\/span><span>&#8220;<\/span><span>http:\/\/schemas.microsoft.com\/VisualStudio\/2005\/CodeSnippet<\/span><span>&#8220;<\/span><span>&gt;<\/span><\/span><\/p>\n<p><span><span><\/span><\/span>and &ndash; finally &ndash; all is good \ud83d\ude42<\/p>\n<p><img decoding=\"async\" src=\"\"><\/p>\n<p>Hopefully this solved the mystery of the missing results \ud83d\ude09<\/p>\n<p>Best!<\/p>\n<p>&nbsp;&nbsp;&nbsp; Daniel<\/p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hi, I posted a bit of code the other day which I used to get a list of all Code Snippets we ship in Visual Studio. In a nutshell, I used XElement.Load to create a new XML document from a filename from which I then read elements from (There are way to many &lsquo;&rdquo;from&rdquo; in [&hellip;]<\/p>\n","protected":false},"author":260,"featured_media":8818,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[192,195],"tags":[52,94,185],"class_list":["post-2853","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-featured","category-visual-basic","tag-daniel-walzenbach","tag-linqvb9","tag-xml"],"acf":[],"blog_post_summary":"<p>Hi, I posted a bit of code the other day which I used to get a list of all Code Snippets we ship in Visual Studio. In a nutshell, I used XElement.Load to create a new XML document from a filename from which I then read elements from (There are way to many &lsquo;&rdquo;from&rdquo; in [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/vbteam\/wp-json\/wp\/v2\/posts\/2853","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/vbteam\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/vbteam\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/vbteam\/wp-json\/wp\/v2\/users\/260"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/vbteam\/wp-json\/wp\/v2\/comments?post=2853"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/vbteam\/wp-json\/wp\/v2\/posts\/2853\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/vbteam\/wp-json\/wp\/v2\/media\/8818"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/vbteam\/wp-json\/wp\/v2\/media?parent=2853"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/vbteam\/wp-json\/wp\/v2\/categories?post=2853"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/vbteam\/wp-json\/wp\/v2\/tags?post=2853"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}