2009-07-15 14 views
0

Ich versuche, eine mvcSiteMap zu analysieren, ich habe das meiste davon funktioniert, aber meine Where-Klausel ist es nicht richtig. es gibt immer die Zeile zurück, die die where-Klausel ausschließen sollte.Linq to Xml noob Frage

nodeTitle = "Bulk Order Request"; 

XElement xelement2 = XElement.Load(filePath); 
var urlDescList1 = (xelement2.Descendants() 
    // Select node with 'Favorite Social Sites' 
    .Where(node => (string) node.Attribute("title").Value != nodeTitle) 
    .SelectMany(node => node.Elements()) 
    .Select(node => new 
    { 
     title = node.Attribute("title").Value, 
     url = node.Attribute("action").Value 
    })).ToList(); 

Ich bekomme die gleiche Anzahl von Zeilen zurückgegeben, ob die where-Klausel ist oder nicht. es ist wie die where-Klausel ist immer wahr, auch wenn das Titelelement der ausgegebenen lsit enthält "Bulk Order Request" als Titel

Ich bin mir sicher, dass ich etwas Obvoulsy dumm, aber ich kann nicht sieh es dir an.

Danke,

Eric-

xml

<?xml version="1.0" encoding="utf-8" ?> 
<siteMap xmlns="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-1.0"> 
    <mvcSiteMapNode title="Home" controller="Home" action="Index" isDynamic="true" dynamicParameters="*" > 
     <mvcSiteMapNode title="Home" controller="RunWebForm" action="DisplayPage/~-Scout_Main-HelloPage.aspx" roles="*" /> 
     <mvcSiteMapNode title="Inbond Call" controller="RunWebForm" action="DisplayPage/~-Scout_HandleCall-StartCall.aspx" roles="*" /> 
     <mvcSiteMapNode title="Reports" controller="NoController" action="NoAction/80" roles="*" > 
      <mvcSiteMapNode title="Activity By Type" controller="Reports" action="ActivityByType" roles="*" /> 
      <mvcSiteMapNode title="Activity By Agent" controller="Reports" action="ActivityByAgent" roles="*" /> 
      <mvcSiteMapNode title="Activity By Language" controller="Reports" action="ActivityByLang" roles="*" /> 
      <mvcSiteMapNode title="Complaints" controller="Reports" action="ComplaintReport" roles="*" /> 
      <mvcSiteMapNode title="Volume by Date Time" controller="Reports" action="VolumeByDateTime" roles="*" /> 
      <mvcSiteMapNode title="Activity By Gender" controller="Reports" action="CallPersonActivityByGenderReport" roles="*" /> 
      <mvcSiteMapNode title="Prospects by Age" controller="Reports" action="ActivitybyProspectsbyAge" roles="*" /> 
      <mvcSiteMapNode title="Prospects by Ethnicity" controller="Reports" action="ActivitybyEthnicity" roles="*" /> 
      <mvcSiteMapNode title="Prospects by Gender" controller="Reports" action="ActivitybyGender" roles="*" /> 
      <mvcSiteMapNode title="Prospects by Language" controller="Reports" action="ActivitybyLanguage" roles="*" /> 
      <mvcSiteMapNode title="Activity by Referral Source" controller="Reports" action="ActivitybyReferralSource" roles="*" /> 
     </mvcSiteMapNode> 
     <mvcSiteMapNode title="Fullfillment letter" controller="NoController" action="NoAction/9" roles="*" > 
      <mvcSiteMapNode title="Bulk Order Request" controller="Reports" action="ActivityByBulkOrderRequest" roles="*" /> 
      <mvcSiteMapNode title="Letter English" controller="Reports" action="LetterEnglish" roles="*" /> 
      <mvcSiteMapNode title="Letter English - General Inquiry" controller="Reports" action="LetterEnglishForGeneralInquiry" roles="*" /> 
     </mvcSiteMapNode> 
     <mvcSiteMapNode title="Maintenance" description="Maintenance" controller="NoController" action="NoAction/11" roles="4048"> 
      <mvcSiteMapNode controller="RunWebForm" action="DisplayPage/~-Scout_Main-Administration-MaintainScripts.aspx" title="Maintain Call Scripts " description="Maintain Call Scripts" roles="4048"/> 
      <mvcSiteMapNode controller="RunWebForm" action="DisplayPage/~-Scout_Main-Administration-MediaTypeMaintain.aspx" title="Maintain Media Items " description="Maintain Media Items" roles="4048"/> 
      <mvcSiteMapNode controller="RunWebForm" action="DisplayPage/~-Scout_Main-Administration-CallMainSource.aspx" title="Maintain Call Main Sources " description="Maintain Call Main Sources" roles="4048"/> 
      <mvcSiteMapNode controller="RunWebForm" action="DisplayPage/~-Scout_Main-Administration-CallSecondarySource.aspx" title="Maintain Call Secondary Sources " description="Maintain Call Secondary Sources" roles="4048"/> 
      <mvcSiteMapNode controller="RunWebForm" action="DisplayPage/~-Scout_Main-Administration-CallOtherLanguage.aspx" title="Maintain Additional Languages" description="Maintain Additional Languages" roles="4048"/> 
     </mvcSiteMapNode> 
     <mvcSiteMapNode controller="Account" action="Logon" title="Logout" description="Logout and return to the login screen" roles="*" /> 
     </mvcSiteMapNode> 
</siteMap> 
+0

Bitte formatieren Sie Ihre LINQ-Abfrage als Code als auch in Ordnung. –

+0

Ist es nicht jetzt Code? –

Antwort

1

schrieb es nicht Lambda arbeitet

  XElement xelement2 = XElement.Load(filePath); 

      var query = from c in xelement2.Descendants() 
      where (string)c.Attribute("title").Value != nodeTitle 
      select c;