gpt4 book ai didi

c# - 如何从动态对象中获取反序列化的xml属性

转载 作者:行者123 更新时间:2023-11-30 21:30:10 26 4
gpt4 key购买 nike

我可以毫无问题地从 expandoobject 获取元素 innertext。我不知道如何获取属性的值。

通过 Console.WriteLine(obj.Message.Body),我可以在 body 元素中获取预期的字符串。

    private void TestXML()
{
string xmlString = @"<?xml version=""1.0"" encoding=""utf-8""?><Message important=""yes"" recevied=""2019-2-12""><Body>Hi there fella!</Body></Message>";
XDocument doc = XDocument.Parse(xmlString);
string json = JsonConvert.SerializeXNode(doc);
dynamic obj = JsonConvert.DeserializeObject<ExpandoObject>(json);

Console.WriteLine(obj.Message);

}

我进行了调试,在 obj.Message 下我可以看到 3 个字段:

  • @important 值为“yes”
  • @received 值为“2019-2-12”
  • 有值(value)的 body “嗨,伙计!”

有没有办法用@前缀检索前两个字段的值?我不知道如何处理动态对象上的这个@字符。

最佳答案

要处理动态对象中的特殊字符,例如“@”,必须将其转换为`(IDictionary)。然后你可以得到 recevied 属性如下:

var received = ((IDictionary<string, object>)obj.Message)["@recevied"];

关于c# - 如何从动态对象中获取反序列化的xml属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54642299/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com