2012-02-13 76 views
0

我有被布置的就像XML访问包含

<AllReport> 
    <Report> 
      <DataPoint1> 
      </DataPoint1> 
      <DataPoint2> 
      </DataPoint2> 
      <DataPoint3> 
      </DataPoint3>  
    </Report> 
    <Report> 
      <DataPoint1> 
      </DataPoint1> 
      <DataPoint2> 
      </DataPoint2> 
      <DataPoint3> 
      </DataPoint3> 
    </Report> 
    so on so forth.... 
</AllReport> 

一个XML结构文件有没有更好的办法直接访问DataPoint1不使用多脂肪的循环?

+1

在哪种编程语言? – Tomalak 2012-02-13 09:51:41

+0

比什么更好? – 2012-02-13 10:07:02

回答

0

在C#中,你可以使用LINQ到XML

var xmlItems = XDocument.Load("yourXML); 
var result = from e in xmlItems.Descendants("Report").Descendants("DataPoint1"); 

foreach(item in result){ 

    //it goes though all DataPoint 1 

} 
0

的XPath表达式/AllReport/Report/DataPoint1//DataPoint1都将你的样本文档中返回所有DataPoint1节点的列表。然后,您可以使用DOM库或所选语言为您提供的任何方式遍历该列表。

您使用哪一个将取决于实际文档的性质。如果您希望访问的每个DataPoint1实例都以相同的方式嵌套,请使用前者。如果你不能确定的DataPoint1嵌套(也许有些报道有子报表,或有一个“摘要” DataPoint1孩子AllReport,那么后者可能是可取的。

它通常是最好的选择更精确的表达,出于性能和错误检测原因。