2010-01-17 155 views
1

我有下面的XML文档:如何访问XML元素和属性?

<wave waveID="1"> 
    <well wellID="1" wellName="A1"> 
     <oneDataSet> 
     <rawData>0.1123975676</rawData> 
     </oneDataSet> 
    </well> 
    ... more wellID's and rawData continues here... 

总体而言,什么是阅读RAWDATA的最佳方式,我应该抓住包含通过树井waveID = 1个,然后循环找出RAWDATA为节点每个wellID?我对XML很陌生,并且对读取树木的最佳方式感到困惑。

+1

的编程语言/应用程序,你在想用来读取和处理数据的?一般而言,您可能想了解如何使用XPath语法,因为大多数XML解析器用于定位标记和元素并从中提取数据。 W3Schools.com有一个很好的使用XPath的教程:http://www.w3schools.com/xpath/default.asp – Sharpie 2010-01-17 02:47:24

回答

1

有两种可用的XML解析器。 DOM方法(你在另一篇关于XPath的文章中已经尝试过)是一种DOM方法。这里将XML文档一次性加载到内存中,并使用XPath表达式来挑选出想要的数据片段。另一种方法是SAX。使用SAX,您可以实现解析器在通过文档时调用的回调方法。这更多的是基于事件的模型。这样做的好处是您不需要一次性将整个文档加载到内存中,从而消耗大量内存。

-1

如果您使用.NET语言,访问XML信息的最简单方法是使用DataSet对象。您创建一个DataSet对象,然后在XML文件中使用.ReadXML()方法,并将该信息解析为一组DataTable,这些DataTable比原始XML更容易解析。

+0

-1:DataSet不适用于所有XML模式,仅适用于映射到关系模式的模式。 – 2010-01-17 03:20:14

+0

我还没有找到无法加载到DataSet中的XML文件。你有一个例子吗? – 2010-01-17 16:20:34

+0

这里是一个玩具应用程序,我把它编辑成可以用于测试的数据集中的XML文件:http://dot-dash-dot.com/files/WTFXMLSetup_1_8_0.msi。 – 2010-01-17 16:30:50