gpt4 book ai didi

c# - 如何使用 XmlSerializer 生成标签前缀

转载 作者:IT王子 更新时间:2023-10-29 04:47:16 25 4
gpt4 key购买 nike

我想使用 XmlSerializer 生成以下内容:

<atom:link href="http://dallas.example.com/rss.xml" rel="self" type="application/rss+xml" />

所以我尝试为我的元素添加一个命名空间:

[...]

[XmlElement("link", Namespace="atom")]
public AtomLink AtomLink { get; set; }

[...]

但是输出是:

<link xmlns="atom" href="http://dallas.example.com/rss.xml" rel="self" type="application/rss+xml" />

那么生成前缀标签的正确方法是什么?

最佳答案

首先,原子命名空间通常是这样的:

xmlns:atom="http://www.w3.org/2005/Atom"

为了让您的标签使用atom 命名空间前缀,您需要用它来标记您的属性:

[XmlElement("link", Namespace="http://www.w3.org/2005/Atom")]
public AtomLink AtomLink { get; set; }

您还需要告诉 XmlSerializer 使用它(感谢@Marc Gravell):

XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("atom", "http://www.w3.org/2005/Atom");
XmlSerializer xser = new XmlSerializer(typeof(MyType));
xser.Serialize(Console.Out, new MyType(), ns);

关于c# - 如何使用 XmlSerializer 生成标签前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2810548/

25 4 0