0

如何解析以下 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();

请指导我,谢谢!

4

1 回答 1

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 约定并更具解释性。

于 2012-10-18T06:13:15.533 回答