2009-07-15 5 views
0

Я пытаюсь разобрать mvcSiteMap, у меня есть большая часть его работы, но моя там, где это не так. он всегда возвращает строку, которую должно исключать предложение where.Linq to Xml noob question

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(); 

Я получаю такое же количество возвращенных строк, существует ли предложение where или нет. это как предложение where всегда верно, даже если элемент заголовка выведенного lsit содержит «Bulk Order Request» как его заголовок

Я уверен, что я делаю что-то Obvioulsy глупо, но я не могу видеть это.

Спасибо,

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

Отформатируйте запрос LINQ, как код, а также. –

+0

Разве это не код? –

ответ

1

переписаны это не лямбда работает отлично

  XElement xelement2 = XElement.Load(filePath); 

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