[c#]更改 XML 响应在 RestAPI 中的元素

发布时间: 2017/2/25 3:43:58
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我从我创建其他 AP 打第三方的 API。第三方 API 始终返回在 XML 中,它看起来像

 <prj:prj uri="https://bh.org/api/v2/prj/V51" lid="V51" xmlns:udf="http://ge.com/ri/userdefined" xmlns:ri="http://ge.com/ri" xmlns:file="http://ge.com/ri/file" xmlns:prj="http://ge.com/ri/prj">
 <name>fgfgfg</name>
 <res uri="https://bh.org/api/v2/res/19"/>
 <udf:type name="cis"/>
 <udf:field type="String" name="ST">Cli</udf:field>
 <udf:field type="String" name="CPN">TestName</udf:field>
 <udf:field type="Numeric" name="No">1</udf:field>
 <udf:field type="String" name="CA">Do not know</udf:field>
 <udf:field type="String" name="Cto">Me</udf:field>
 <udf:field type="String" name="Site">GT</udf:field>
 </prj:prj>

在这里我应该只是从 fgfgfg 的名称更改为 ABCD 和发送整个 XML 作为响应。我想添加的代码下面

    var new_Name = "ABCD";
    var response_LabURL = client_LabName.GetAsync(clarity_URL).Result;
    string responseString_LabURL = response_LabURL.Content.ReadAsStringAsync().Result;
    XDocument new_doc = XDocument.Parse(responseString_LabURL);
    var name_element = new_doc.Elements("name").Single();
    name_element.Value = new_Name;
    return Ok(new_doc);

但这会引发像错误ExceptionMessage":"Sequence contains no elements","ExceptionType":"System.InvalidOperationException"‌​,"StackTrace":" at System.Linq.Enumerable.Single[TSource]

解决方法 1:

这可能会为你做的把戏

XDocument xdc = XDocument.Load(YourXMLFile);
xdc.Descendants("name").FirstOrDefault().Value = "ABCD";

现在你对象 xdc 都变了。你可以保存它。

官方微信
官方QQ群
31647020