关于XML循环遍历子节点并取值,该怎么解决

关于XML循环遍历子节点并取值
这是我的XML文件:
 
<root>
  <reportChart>
    <ReportChartid>1111111111</ReportChartid> <!--唯一标示-->
    <DataType>Chart</DataType> <!--Chart,Table,Target-->
    <ChartInQdex> </ChartInQdex>
    <ChartType>Column2D.swf</ChartType> <!--图表类型-->
    <ReportCaption></ReportCaption> <!--标题-->
    <IsMultiSeries></IsMultiSeries>
    <ReportUnits></ReportUnits>
    <FromDB>false</FromDB>
    <OrcSQL>select * from aaa</OrcSQL> <!--SQL-->
  </reportChart>
  <reportChart>
    <ReportChartid>222222222</ReportChartid>
    <!--唯一标示-->
    <DataType>Chart</DataType>
    <!--Chart,Table,Target-->
    <ChartInQdex> </ChartInQdex>
    <ChartType>Column2D.swf</ChartType>
    <!--图表类型-->
    <ReportCaption></ReportCaption>
    <!--标题-->
    <IsMultiSeries></IsMultiSeries>
    <ReportUnits></ReportUnits>
    <FromDB>false</FromDB>
    <OrcSQL>select</OrcSQL>
    <!--SQL-->
  </reportChart>
</root>
现在我需要通过匹配唯一标示ReportChartid取到子节点OrcSQL的值,怎么写,求代码
------解决思路----------------------
http://www.cnblogs.com/RiseSoft/archive/2012/03/17/2404007.html
楼主可以看看
------解决思路----------------------
参见:http://blog.csdn.net/duanzi_peng/article/details/24018431
------解决思路----------------------
用Linq to xml很简单
http://blog.csdn.net/ta_wuhen/article/details/40395165
------解决思路----------------------
  XElement xelement = XElement.Load("t6.xml");
  var query = xelement.Descendants("reportChart").Where(x => x.Element("ReportChartid").Value == "1111111111").Select(x => x.Element("OrcSQL").Value).ToList();
 MessageBox.Show(query[0].ToString());