我有xml文件更好的方式來讀取XML
<root>
<child_1>
<sub_child attr1="text" attr2="text" />
<sub_child attr1="text" attr2="text" />
<sub_child attr1="text" attr2="text" />
</child_1>
<child_2>
<sub_child attr1="text" attr2="text" />
<sub_child attr1="text" attr2="text" />
<sub_child attr1="text" attr2="text" />
</child_2>
<child_3>
<sub_child_1 attr1="text" attr2="text" />
<sub_child_2 attr1="text" attr2="text" />
</child_3>
...
,我想讀
class SubChild {
string a1;
string a2;
}
我需要child_1和child_2 SubChild對象的兩個列表和兩個SubChild對象sub_child屬性類對於sub_child_1和sub_child_2
現在我使用的LINQ to XML和我的代碼是
// List<SubChild>
var child_1 = from s in doc.Descendants("sub_child").Where(x => x.Parent.Name == "child_1")
select new SubChild {
a1 = s.Attribute("attr1").Value,
a2 = s.Attribute("attr2").Value,
};
// List<SubChild>
var child_2 = from s in doc.Descendants("sub_child").Where(x => x.Parent.Name == "child_2")
select new SubChild {
a1 = s.Attribute("attr1").Value,
a2 = s.Attribute("attr2").Value,
};
// SubChild
var sub_1 = (from s in doc.Descendants("sub_child_1")
select new SubChild {
a1 = s.Attribute("attr1").Value,
a2 = s.Attribute("attr2").Value,
}).First();
// SubChild
var sub_2 = (from s in doc.Descendants("sub_child_2")
select new SubChild {
a1 = s.Attribute("attr1").Value,
a2 = s.Attribute("attr2").Value,
}).First();
但它看起來很醜,我想問問有沒有更清晰的方法來做到這一點?
但這是否比LInq好?請注意,您需要其中2個參數。想象一下路徑的變化。 –