@@ -453,50 +453,27 @@ protected virtual XElement GetElementByName(XElement root, XName name)
453
453
}
454
454
455
455
// try looking for element that matches sanitized property name (Order by depth)
456
- var element =
457
- root . Descendants ( )
458
- . OrderBy ( d => d . Ancestors ( ) . Count ( ) )
459
- . FirstOrDefault ( d => d . Name . LocalName . RemoveUnderscoresAndDashes ( ) == name . LocalName ) ?? root . Descendants ( )
460
- . OrderBy ( d => d . Ancestors ( ) . Count ( ) )
461
- . FirstOrDefault ( d => d . Name . LocalName . RemoveUnderscoresAndDashes ( ) == name . LocalName . ToLower ( ) ) ;
462
-
463
- if ( element != null )
464
- {
465
- return element ;
466
- }
467
-
468
- return null ;
456
+ return root . Descendants ( )
457
+ . OrderBy ( d => d . Ancestors ( ) . Count ( ) )
458
+ . FirstOrDefault ( d => d . Name . LocalName . RemoveUnderscoresAndDashes ( ) == name . LocalName ) ??
459
+ root . Descendants ( )
460
+ . OrderBy ( d => d . Ancestors ( ) . Count ( ) )
461
+ . FirstOrDefault ( d => d . Name . LocalName . RemoveUnderscoresAndDashes ( ) == name . LocalName . ToLower ( ) ) ;
469
462
}
470
463
471
464
protected virtual XAttribute GetAttributeByName ( XElement root , XName name )
472
465
{
473
- var lowerName = name . LocalName . ToLower ( ) . AsNamespaced ( name . NamespaceName ) ;
474
- var camelName = name . LocalName . ToCamelCase ( Culture ) . AsNamespaced ( name . NamespaceName ) ;
475
-
476
- if ( root . Attribute ( name ) != null )
477
- {
478
- return root . Attribute ( name ) ;
479
- }
480
-
481
- if ( root . Attribute ( lowerName ) != null )
466
+ var names = new List < XName >
482
467
{
483
- return root . Attribute ( lowerName ) ;
484
- }
485
-
486
- if ( root . Attribute ( camelName ) != null )
487
- {
488
- return root . Attribute ( camelName ) ;
489
- }
490
-
491
- // try looking for element that matches sanitized property name
492
- var element = root . Attributes ( ) . FirstOrDefault ( d => d . Name . LocalName . RemoveUnderscoresAndDashes ( ) == name . LocalName ) ;
493
-
494
- if ( element != null )
495
- {
496
- return element ;
497
- }
498
-
499
- return null ;
468
+ name . LocalName ,
469
+ name . LocalName . ToLower ( ) . AsNamespaced ( name . NamespaceName ) ,
470
+ name . LocalName . ToCamelCase ( Culture ) . AsNamespaced ( name . NamespaceName )
471
+ } ;
472
+
473
+ return root . DescendantsAndSelf ( )
474
+ . OrderBy ( d => d . Ancestors ( ) . Count ( ) )
475
+ . Attributes ( )
476
+ . FirstOrDefault ( d => names . Contains ( d . Name . LocalName . RemoveUnderscoresAndDashes ( ) ) ) ;
500
477
}
501
478
}
502
479
}
0 commit comments