如何在C#中访问XML String值?

时间:2011-02-10 17:40:14

标签: c# xml rest

我正在学习使用ReST Web服务,我需要了解如何从返回的xml字符串中获取特定值。如何从xml String中简单地获取1个值?我想要的只是一个价值。有没有办法将这个字符串转换为索引器的东西?

我正在使用Yahoo Geocoding服务。结果:

<ResultSet version="1.0">
<Error>0</Error>
<ErrorMessage>No error</ErrorMessage>
<Locale>us_US</Locale>
<Quality>87</Quality>
<Found>1</Found>
−
<Result>
<quality>85</quality>
<latitude>86.457310</latitude>
<longitude>-73.262245</longitude>
<offsetlat>46.457311</offsetlat>
<offsetlon>-73.262071</offsetlon>
<radius>500</radius>
<name/>
<line1>1234 N Main St</line1>
<line2>Anytown, New York  12345</line2>
<line3/>
<line4>United States</line4>
<house>1234</house>
<street>N Main St</street>
<xstreet/>
<unittype/>
<unit/>
<postal>12345</postal>
<neighborhood/>
<city>New York</city>
<county>Albany County</county>
<state>New York</state>
<country>United States</country>
<countrycode>US</countrycode>
<statecode>NY</statecode>
<countycode/>
<uzip>12345</uzip>
<hash>E692D20CBDF86A2E</hash>
<woeid>12783988</woeid>
<woetype>11</woetype>
</Result>
</ResultSet>

3 个答案:

答案 0 :(得分:3)

您可以使用Linq to XML

XDocument xmlfile= XDocument.Load("PATH TO XML DOC");
var test = from xml in xmlfile.Descendants("item_name")
           select new { Title = (string)xml.Element("title").Value };

这是一种方式。

答案 1 :(得分:2)

使用XPath来解决您感兴趣的节点:

http://msdn.microsoft.com/en-us/library/d271ytdx(v=VS.90).aspx

将XML字符串转换为XML文档

XmlDocument doc = new XmlDocument();
doc.LoadXml(yourString);

以下是XPath的一个很好的介绍:http://www.codeproject.com/KB/cpp/myXPath.aspx

答案 2 :(得分:1)

Easiest way to read XML with attributes上查看我的问题。我发现使用xsd.exe生成一个允许您对XML进行托管访问的xsd是访问X​​ML数据的最简单方法。 LINQ2XML也很容易使用。