c# - 将 Xml 属性添加到字符串属性

标签 c# xml serialization

我有一个自定义对象,它有一个名为“Name”的字符串属性 我想保持序列化生成的 XML 相同,但向名为“NiceName”的元素添加一个值为“全名”的属性。

这是我目前拥有的:

<TheObject>
  <Name>mr nobody</Name>
</TheObject>

这是我想要生成的:

<TheObject>
  <Name NiceName='Full name'>mr nobody</Name>
</TheObject>

我只需要在某些 XSLT 中使用它,所以我不想尽可能改变类的工作方式。 IE。将名称从字符串更改为自定义类。所有对象都将具有相同的属性,它永远不会改变,它将完全只读。

最佳答案

您可以结合使用 XMLAttribute 和 XmlText()

以下面的类声明为例:

    public class Description {
    private int attribute_id;
    private string element_text;

    [XmlAttribute("id")]
    public int Id {
        get { return attribute_id; }
        set { attribute_id = value; }
    }

    [XmlText()]
    public string Text {
        get { return element_text; }
        set { element_text = value; }
    }
}

输出将是

<XmlDocRoot>
<Description id="1">text</Description>

关于c# - 将 Xml 属性添加到字符串属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4154621/

相关文章:

c# - 套接字数据处理 - 用于数据打包 (TCP)

C# Web 应用程序事件处理

jquery - 本地 html 文件 AJAX 调用和 jQuery 问题

java - 在 Sax 解析器 (XML) 中处理外部实体和样式表

使用 JSON.Net 的 C# JSON 字符串反序列化

c# - 按住修饰键时,所有 WPF 上下文菜单似乎都无法正确处理突出显示的项目

c# - 如何使用所有引用递归地将程序集加载到 AppDomain?

xml - 使用 XSLT 合并两个 XML 源文档

scala - `Map[String, String]` 别名的 NotSerializableException

java - 监控java序列化