2012-03-09 58 views
0

我有一個CRM FetchXML字符串。這有一個鏈接的實體,這意味着XML元素與一個GUID的前綴,如:更改或解析CRM FetchXML與LINQ to XML

<a_6dd7d25cb0be4150bbaec7c0d2f430c7.lastname>Bob</a_6dd7d25cb0be4150bbaec7c0d2f430c7.lastname> 
<a_6dd7d25cb0be4150bbaec7c0d2f430c7.firstname>Bob</a_6dd7d25cb0be4150bbaec7c0d2f430c7.firstname> 
<a_6dd7d25cb0be4150bbaec7c0d2f430c7.title name="Mr" formattedvalue="1">1</a_6dd7d25cb0be4150bbaec7c0d2f430c7.title> 

我想在一個類似的方式來使用它:

List<FetchResult> results = 
      (from result in xmlDoc.Descendants("result") 
      select new FetchResult 
      { 
       FirstName = result.Element("firstname").Value 
      }).ToList<FetchResult>(); 

顯然,這億韓元」噸工作,所以有反正我可以做Element.Contains("lastname")或類似? 如果不是,我可以在手之前從我的字符串中解析出來嗎?也許是正則表達式?

感謝

回答

2
List<FetchResult> results = 
      (from result in xmlDoc.Descendants("result") 
      select new FetchResult 
      { 
       FirstName = result.Elements().First(el => el.EndsWith("firstname")).Value 
      }).ToList<FetchResult>(); 

應工作

+0

+1感謝這一點 - 它也不太工作,但把我推在正確的方向。我現在將添加正確的語法。再次感謝。 – Matt 2012-03-09 12:38:31

0

由於Foo42 - 這是更新過的語法

FirstName = result.Elements().First(el => el.Name.ToString().EndsWith("firstname")).Value 
+0

噢,元素是一種方法不是它! – Foo42 2012-03-09 12:46:39

+0

如果您編輯您的答案,我會將其標記爲正確 - 謝謝 – Matt 2012-03-12 11:35:24