You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何访问嵌套的XElement?C#读取SOAP响应POV字段失败求解

问题原因

POV节点不属于VehicleImageDocDescriptor的直接子节点,它被嵌套在下级的ImageMetadata节点中,你直接从VehicleImageDocDescriptor节点层级查询POV自然无法匹配到对应节点。同时所有嵌套在http://kyle/webservices/命名空间下的节点,查询时都需要带上相同的命名空间前缀。

修正方案

你只需要先查询到ImageMetadata节点,再从该节点下查询POV即可,修改后的循环代码如下:

foreach (XElement response in responses)
{
    // 先取ImageMetadata子节点
    XElement imageMetadata = response.Element(ns + "ImageMetadata");
    // 再从ImageMetadata下取POV的值,加空值判断避免异常
    pov = (string)imageMetadata?.Element(ns + "POV");
    epoch = (string)response.Element(ns + "Epoch");
    imageSetId = (string)response.Element(ns + "ImageSetId");
    parsedDate = DateTime.Parse(epoch);
}

如果你不想逐层查询,也可以直接用Descendants方法在当前节点的所有后代节点中匹配POV,写法更简洁但精准度略低,存在匹配到其他层级重名节点的风险:

pov = (string)response.Descendants(ns + "POV").FirstOrDefault();

内容的提问来源于stack exchange,提问作者Kyle Mann

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 07:45:03