基本LINQ to XML问题

时间:2010-12-29 22:09:54

标签: c# linq

我有一个返回一些XML的.asmx webservice。 XML的示例位如下:

<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://tempuri.org/">http://www.mydomain.com/sample.txt</string>

我是LINQ的新手,但我想熟悉它。我需要获取string元素内部的值。但我不确定如何使用LINQ。目前,我正在尝试:

string text = GetXmlText();
XDocument xml = XDocument.Parse(text);
string url = xml.Descendants("string").SingleOrDefault().Value;

此代码抛出异常。但我不确定我做错了什么。如何使用LINQ获取响应值?

谢谢!

1 个答案:

答案 0 :(得分:1)

对于这种特殊用法,您只需要这样,因为您提供的XML只包含一个根节点,并且您想要它的值。

string url = xml.Root.Value;

如果XML确实更复杂,请详细说明。但请查看xmlns元素中的string属性。要处理您希望直接引用特定元素或后代的情况,您需要使用XNamespace对象。

XNamespace ns = "http://tempuri.org/";
string url = (string)xml.Descendants(ns + "string").FirstOrDefault();