gpt4 book ai didi

c# - 如何在 C# 中将 XML 元素反序列化为具有属性和文本的元素数组?

转载 作者:数据小太阳 更新时间:2023-10-29 01:56:56 26 4
gpt4 key购买 nike

我在尝试反序列化此 XML 时遇到问题:

<?xml version="1.0" encoding="UTF-8"?>
<links>
<link title="ABC">http://abc.co.uk</link>
<link title="eBay">http://ebay.co.uk</link>
<link title="Best Damn Site on the Web">http://stackoverflow.com</link>
</links>

使用代码:

[XmlRoot("links")]
public class LinksInterface
{
[XmlElement("link")]
public List<LinkElement> Links;

public class LinkElement
{
[XmlAttribute("title")]
public string Title;
[XmlText] // This bit is the troublesome bit!
public LinkElement Link;
}
}

基本上,我需要将元素的文本内容放入 Links.Link 但我正在尝试的属性 [XmlText] 不提供我想要的行为期待,我得到错误:

反射(reflect)字段“链接”时出现错误。

如果有人能指出我方法中的错误,我将不胜感激!

谢谢。

最佳答案

也许只使用string:

[XmlText]
public string Link {get;set;}

目前该类是递归的(一棵树)——我认为这不是您想要的。

(我也切换到一个属性,但这不是问题 - string 是个大问题;但是有很多的理由来使用属性而不是字段, 以及自动属性 ​​(C# 3.0) 几乎没有理由不这样做)


编辑:另外,尝试查看最内部的异常;在这种情况下,消息是:

Cannot serialize member 'Link' of type LinksInterface.LinkElement. XmlAttribute/XmlText cannot be used to encode complex types.

这给出了问题所在的合理指示;-p

关于c# - 如何在 C# 中将 XML 元素反序列化为具有属性和文本的元素数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1755178/

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