Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 尝试在XML响应中查找元素_C#_Asp.net_Asynchronous_Xelement_Async Await - Fatal编程技术网

C# 尝试在XML响应中查找元素

C# 尝试在XML响应中查找元素,c#,asp.net,asynchronous,xelement,async-await,C#,Asp.net,Asynchronous,Xelement,Async Await,这是我从XML检索元素的代码: private async Task<XElement> PostAsXmlRequestAsync(XElement parameter, CancellationToken responseToken) { using (var client = new HttpClient()) { client.BaseAddress = new Uri(Constants.url); HttpResponseM

这是我从XML检索元素的代码:

private async Task<XElement> PostAsXmlRequestAsync(XElement parameter, CancellationToken responseToken)
{
    using (var client = new HttpClient())
    {
        client.BaseAddress = new Uri(Constants.url);
        HttpResponseMessage responseMessage = await client.PostAsXmlAsync(Constants.uri, parameter, responseToken);

        string responseContent = await responseMessage.Content.ReadAsStringAsync();
        XElement responseXml = XElement.Parse(responseContent);

        **bool hasElement = responseXml.Elements("Warnings").Any();
        Console.WriteLine(hasElement);**

        return responseXml;
    }
}

您正在寻找的节点可能有一些名称空间,而不是默认的空名称空间(即XML有类似
xmlns=”http://some-namespace“

您应该使用具有名称空间的版本来选择元素。文章以样本形式展示了这两个案例:

XNamespace aw = "http://www.adventure-works.com";
var elements = xmlTree.Elements(aw + "Type2");

谢谢,但它不起作用,总是元素的价值null@user3444535所以您使用了
”http://www.opentravel.org/OTA/2003/05“
作为
XNamespace
而代码仍然不起作用?@user3444535-请用“也尝试过…”编辑您的帖子-评论中的代码很难阅读。也就是说,不清楚您是否执行了
xa=”http://www.opentravel.org/OTA/2003/05";或错误地
xa=“www.opentravel.org/OTA/2003/05”对不起,
xxmlns=”http://www.opentravel.org/OTA/2003/05";
var elements=responseXml.elements(xmlns+“OTA_VehAvailRateRS”)
Console.WriteLine(元素)这是正确的男女同校。这不是工作。元素为空…@user3444535
elements
据我所知,永远不会返回
null
。。。无论如何,如果您阅读MSDN链接,您会注意到“返回此元素的子元素的筛选集合”-您请求与“this element”同名的子元素-实际上,您得到的集合是空的。
XNamespace aw = "http://www.adventure-works.com";
var elements = xmlTree.Elements(aw + "Type2");