gpt4 book ai didi

C# 对象到 XML

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

我正在创建一个需要将 C# 对象转换为 XML 的应用程序。

我正在使用 XML Serializer 类来实现此目的。这是代码片段:

public  class Anwer
{
public int ID { get; set; }
public string XML { get; set; }
public Anwer(int ID, string XML)
{
this.ID = ID;
this.XML = XML;
}
public Anwer() { }
}

这是主要功能:

   string AnswerXML = @"<Answer>1<Answer>";
List<Anwer> answerList = new List<Anwer>();
answerList.Add(new Anwer(1,AnswerXML));
AnswerXML = @"<Answer>2<Answer>";
answerList.Add(new Anwer(2, AnswerXML));
XmlSerializer x = new XmlSerializer(answerList.GetType());
x.Serialize(Console.Out, answerList);

输出是:

<?xml version="1.0" encoding="IBM437"?>
<ArrayOfAnwer xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="h
ttp://www.w3.org/2001/XMLSchema">
<Anwer>
<ID>1</ID>
<XML>&lt;Answer&gt;1&lt;Answer&gt;</XML>
</Anwer>
<Anwer>
<ID>2</ID>
<XML>&lt;Answer&gt;2&lt;Answer&gt;</XML>
</Anwer>
</ArrayOfAnwer>

在上面的代码中,'<' 和 '>' 被替换为 '<' 和 '>';如何避免这种情况?我知道字符串替换是其中一种方式,但我不想使用它。

提前致谢。

最佳答案

基本上,您不需要。这正确地序列化了对象 - XML 序列化程序不想处理字符串中的 XML 搞砸了,所以它适本地转义了 XML。

如果稍后反序列化 XML,您将返回到原始对象数据。

如果您尝试以自定义方式构建 XML 文档,我建议您不要一开始就使用 XML 序列化。如果您乐于显式创建元素等,或者如果您真的,真的想直接在输出中包含任意字符串,请使用 LINQ to XML,请使用 XmlWriter

如果您可以向我们提供更多关于您正在尝试做的事情的大局信息,我们可能会建议更好的替代方案 - 直接构建 XML 字符串几乎从来都不是一个好主意。

关于C# 对象到 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4468478/

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