我在 C# 中有一个简单的类,我已将其设置为使用 XmlSerializer 类序列化为 XML。
[Serializable, XmlRoot("dc", Namespace= dc.NS_DC)]
public class DCItem {
// books??
[XmlElement("title")]
public string Title { get; set; }
}
DCItem 序列化效果很好,因为代码现在已设置(如上所示);但是,我想更改属性“Title”,使其包含在“Books”节点中。例如:
<dc>
<books>
<title>Joe's Place</title>
</books>
</dc>
执行此操作的最佳方法是什么?
最佳答案
您可以定义一个 Books 类:
public class Books
{
[XmlElement("title")]
public string Title { get; set; }
}
然后:
[XmlRoot("dc", Namespace= dc.NS_DC)]
public class DCItem
{
[XmlElement("books")]
public Books Books { get; set; }
}
另请注意,我已经摆脱了由二进制序列化程序使用并被 XmlSerializer 类完全忽略的 Serializable 属性。
既然我怀疑你可能有多本书:
<dc>
<books>
<title>Joe's Place</title>
<title>second book</title>
<title>third book</title>
</books>
</dc>
你可以调整你的对象模型来匹配这个结构:
[XmlRoot("dc", Namespace= dc.NS_DC)]
public class DCItem
{
[XmlElement("books")]
public Books Books { get; set; }
}
public class Books
{
[XmlElement("title")]
public Book[] Items { get; set; }
}
public class Book
{
[XmlText]
public string Title { get; set; }
}
关于c# - C# 中的 XmlElement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14347635/