【问题标题】:I have XmL that needs to be parsed in a c# object. Xml has my api key and I need it in my c# controller class我有需要在 c# 对象中解析的 XmL。 Xml 有我的 api 密钥,我在我的 c# 控制器类中需要它
【发布时间】:2017-07-11 15:08:29
【问题描述】:

我需要将xml转换成c#对象

这是我正在尝试使用的 xml api 密钥

<?xml version="1.0" encoding="UTF-8"?>
<rsp stat="ok" version="1.0">
    <api_key>57173e1d727788c372e91c115e8e2ff6</api_key>
    <version>4</version>
</rsp>

我需要将该 api 用作对象的 C# 类 我已经从信息中取出了我的密码和 api 密钥。

public static string GetApiKey()
        {
            var client = new RestClient("https://pi.pardot.com/api/login/version/3");
            var request = new RestRequest(Method.POST);
            request.AddHeader("accept-charset", "utf-8");
            request.AddHeader("content-type", "application/x-www-form-urlencoded");
            request.AddParameter("application/x-www-form-urlencoded",  ParameterType.RequestBody);
            IRestResponse response = client.Execute(request);

            //parse to get apikey

                return response.Content;
            string apikey = "";

            return apikey;
        }
    }

【问题讨论】:

  • 您实际上需要“将 XML 转换为对象”,还是只需要从 xml 中以字符串形式获取 api_key 元素的值?
  • @EdPlunkett ... 是的,我只需要 api_key 的值作为来自 xml 的字符串
  • @EdPlunkett 我使用邮递员到那部分代码
  • @Micheal 您可以通过以下两种方式之一执行此操作,您可以直接从 XML 中读取 api-key 的值,正如 Ed Plunkett 在他的回答中向您展示的那样,或者您可以将 XML 反序列化为一个 c# 对象并使用这个对象来做必要的事情。我可以想象,因为您不需要任何值,但是来自反序列化对象的 XML 的 API 密钥将是多余的。

标签: c# json xml parsing xml-parsing


【解决方案1】:

一旦你有了 XML 字符串,这就很简单了。

  1. 解析 XML。
  2. 从 XML 中获取 rsp 元素。
  3. rsp 元素中获取api_key 元素。
  4. 获取api_key 元素的Value 属性。

像这样:

 var xml = response.Content;
 var apiKey = XDocument.Parse(xml).Element("rsp").Element("api_key").Value;

【讨论】:

  • 是的,但我如何将 xml 命名为字符串?
  • 我不知道那是什么意思。
  • 它的返回是硬编码的,xml 中的 api 密钥只能使用 60 分钟然后更改
  • 我最好的猜测是 XML 字符串在 response.Content 中,如我的回答中所述。如果它不在那里,你告诉我它在哪里。我没有坐在你的电脑前。你是。
  • 这是我的一些明智的猜测。你必须自己确认。您将一些 XML 粘贴到您的问题中。我不知道它来自哪里。你大概记得你是从哪里得到它的。无论你上次在哪里找到它,再去一次。
猜你喜欢
  • 2022-01-18
  • 1970-01-01
  • 2018-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-20
  • 2020-08-01
相关资源
最近更新 更多