3

C#を使用してxmlファイルの要素を検索していますが、次のようになっています

エラー:シーケンスに一致する要素がありません

    XNamespace siteNM = "http://schemas.microsoft.com/AspNet/SiteMap-File-1.0";
            XDocument sitemap = new XDocument
                (new XDeclaration("1.0", "UTF-8", null), 
                     new XElement(siteNM + "siteMap", 
                          new XElement(siteNM + "siteMapNode", new XAttribute("title", "Home"), new XAttribute("url", "home.aspx"), new XAttribute("description", "Home"))
                                 ));
    XElement x = sitemap.Root;

要素を検索するために次の2つの方法を試しましたが、どちらも同じエラーが発生します。

最初の方法:

XElement child = x.Descendants("siteMapNode").Where(el => el.Attribute("title") != null && el.Attribute("title").Value == "Home").First();

第 2 の方法:

XElement child1 = x.Descendants("siteMapNode").First(el => (string)el.Attribute("title") == "Home");

私を助けてください。どうもありがとう..

4

2 に答える 2

5

名前空間がありません

XElement child = x.Descendants(siteNM + "siteMapNode")
                .First(el => el.Attribute("title") != null && el.Attribute("title").Value == "Home");
于 2012-07-31T15:24:49.983 に答える
2

おそらく、検索クエリにも namespece を追加する必要があります。

XElement child = x.Descendants(siteNM + "siteMapNode").Where(el => el.Attribute("title") != null && el.Attribute("title").Value == "Home").First();
于 2012-07-31T15:25:44.787 に答える