Bir öznitelik değerine göre benzersiz bir öğe kümesi döndüren bir xml dosyası var.Linq to XML bir öznitelik değeri için bir düğüm noktası seçilmesi
<doc>
<float name="score">1.2873721</float>
<arr name="2_category">
<long>3021</long>
</arr>
<arr name="ATR_FamilyName">
<str>Some Cookbook </str>
</arr>
<arr name="ATR_IsFamily">
<str>0</str>
</arr>
<arr name="ATR_SellPrice">
<str>49.95</str>
</arr>
<arr name="ATR_VendorId">
<str>ABC</str>
</arr>
<arr name="ATR_VendorName">
<str>WROX</str>
</arr>
</doc>
Ben "Ürün" sınıfı doldurmak için linq kullanıyorum: Ben onun adıyla bir düğüm seçemezsiniz gibi bu bir sorun sunar. Öğeleri konuma göre seçebilirim, ancak düğüm mevcut değilse sorun olur. Özelliğinin değerine göre bir düğüm seçmenin bir yolu var mı? Aşağıdaki örnekte, @name özniteliği "ATR_FamilyName" ise arr düğümünü alabilir miyim? XPath'de olurdu: kolayca belirtilen bir özelliği var sadece düğümleri seçebilir LINQ ile
var query = from rt in results
where (String)rt.Descendants().ElementAt(5).Element("str").Value == "0"
select new Product.Product
{
FamilyName = (String)rt.Descendants().ElementAt(3).Value
// doc/arr[@name = 'ATR_FamilyName']/str - select Family Name is arr/@name 'ATR_FamilyName'
MorePropertiestoset....
};
Teşekkür Jon dan yazmak için
Maalesef
- Sen çivilenmiş. Ben herkesin hızlı cevabını uygun bir şekilde yayınlamadaki açıklama için Jon'dan – PhillyNJThx. Tüm düğümlerin özniteliği olmadığı ve bir istisna attığım durumlara koşuyordum çünkü kullandım. Bu fidex. –