如何解析以下XML中仅Main_Screen节点的元素。
<?xml version="1.0" encoding="utf-8" ?>
<plist version="1.0">
<Main_Screen>
<row>
<btn_name>Buyer Programs</btn_name>
</row>
<row>
<btn_name>Seller�s Programs</btn_name>
</row>
<Main_Screen>
<Buyer>
<row>
<btn_name>buy_bac</btn_name>
</row>
<row>
<btn_name>buy_hme</btn_name>
</row>
<Buyer>
<Seller>
<row>
<btn_name>buy_bac</btn_name>
</row>
<row>
<btn_name>buy_hme</btn_name>
</row>
<seller>
<Lender>
<row>
<btn_name>buy_bac</btn_name>
</row>
<row>
<btn_name>buy_hme</btn_name>
</row>
<lender>
<abcd>
<row>
<btn_name>buy_bac</btn_name>
</row>
<row>
<btn_name>buy_hme</btn_name>
</row>
<abcd>
</plist>
我尝试了以下代码,但所有元素都被解析了,我只想解析main_screen节点下面的元素,
XDocument loadedData = XDocument.Load("HelpScreenData.xml");
var data = (from query in loadedData.Descendants("row")
select new tutstat
{
btn_name = (string)query.Element("btn_name"),
strng = (string)query.Element("strng"),
}).ToList();
请指导我,谢谢你!
答案 0 :(得分:0)
听起来就像在调用Root.Element("Main_Screen")
之前使用Descendants
一样简单:
XDocument loadedData = XDocument.Load("HelpScreenData.xml");
var data = loadedData.Root
.Element("Main_Screen")
.Descendants("row") // Or .Elements("row")
.Select(x => new tutstat
{
btn_name = (string) x.Element("btn_name"),
strng = (string) x.Element("strng"),
})
.ToList();
我已经将它从查询表达式更改为简单的方法调用堆栈,因为查询表达式只是添加了噪声。
您还应修复所有名称以符合.NET约定并更具说明性。