我有一个返回一些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获取响应值?
谢谢!
答案 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();