C# - 具有属性和节点值的 Xml 元素

Posted

技术标签:

【中文标题】C# - 具有属性和节点值的 Xml 元素【英文标题】:C# - Xml Element with attribute and node value 【发布时间】:2011-10-05 12:18:03 【问题描述】:

我有一些需要反序列化为对象的 XML。 Xml 是:

<Person>
  <Type id="1234">Bob</Type>
</Person>

类是:

public class Person  public Type Type; 
public class Type 
   [XmlAttribute("id")]
   public string id;
   // another property for value "Bob" here, such as:
   public string value;  // ????

我想使用XmlSerializer.Deserialize 将这个 Xml 反序列化为上面的具体对象(避免使用 XPath 等)

我可以用什么 Xml 属性来装饰“Type”类,这样我不仅有一个“id”属性而且还有一个值(“Bob”)?

【问题讨论】:

"Bob"在C#中存储在哪里? 仅此而已.. 现在不是。我需要知道如何在对象中表示它,以及用哪个 XmlAttribute(如果有)来标记它。 您确实需要将Type 重命名为PersonType 或其他名称,因为它与System.Type 冲突 是的,当然。 'Person' 只是一个示例类。 【参考方案1】:

您必须添加类似的属性

[XmlText]
public string Text;

【讨论】:

以上是关于C# - 具有属性和节点值的 Xml 元素的主要内容,如果未能解决你的问题,请参考以下文章

XMLSerializer : 查找具有名称和属性值的元素

XSLT:XML 第一个属性需要转换为具有第二个属性值的元素

检查 XML 节点是不是具有 Linq C# 的属性?

使用 xslt 2.0 合并具有相同父属性值的元素的 xml 内容

如何在c#中使用具有相同名称但不同属性和结构的元素反序列化XML

C#如何读取XML中指定的节点值?