gpt4 book ai didi

c# - 使用 XML 字符串序列化 XML

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

我必须生成以下 XML

<object>
<stuff>
<body>
<random>This could be any rondom piece of unknown xml</random>
</body>
</stuff>
</object>

我已经将它映射到一个类,具有字符串类型的 body 属性。

如果我将正文设置为字符串值:"<random>This could be any rondom piece of unknown xml</random> "

字符串在序列化过程中被编码。我如何才能不对字符串进行编码,使其以原始 XML 的形式写入?

我也希望能够反序列化它。

最佳答案

XmlSerializer 不会信任您从 string 生成有效的 xml。如果你想让一个成员是 ad-hoc xml,它必须是类似 XmlElement 的东西。例如:

[XmlElement("body")]
public XmlElement Body {get;set;}

带有 Body 一个名为 randomXmlElement with InnerText of "This could be any rondom piece未知的 xml" 会起作用。


[XmlRoot("object")]
public class Outer
{
[XmlElement("stuff")]
public Inner Inner { get; set; }
}
public class Inner
{
[XmlElement("body")]
public XmlElement Body { get; set; }
}

static class Program
{
static void Main()
{
var doc = new XmlDocument();
doc.LoadXml(
"<random>This could be any rondom piece of unknown xml</random>");
var obj = new Outer {Inner = new Inner { Body = doc.DocumentElement }};

new XmlSerializer(obj.GetType()).Serialize(Console.Out, obj);
}
}

关于c# - 使用 XML 字符串序列化 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8833263/

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