C#使用Visual Studio生成的类从xml节点获取所有文本,包括xml标记

在visual studio中使用xml到c#function将下面的xml标记转换为C#类。

   Author-11     Author-11    

转换后的类包含

 [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)] public partial class booksBookAuthorName { private byte refField; // 1 private string[] textField; // 2 

我们需要的是Author-11作为输出,通过保持读取作者姓名 标签。

我们尝试过https://msdn.microsoft.com/en-us/library/system.xml.serialization.xmltextattribute(v=vs.110).aspx属性。 但没有希望。

任何线索?

您可以使用[XmlAnyElement("name")]将每个作者的节点的XML捕获到XmlElement (或XElement )中。 您想要的精确文本是该元素的InnerXml

 [XmlRoot(ElementName = "author")] public class Author { [XmlAnyElement("name")] public XmlElement NameElement { get; set; } [XmlIgnore] public string Name { get { return NameElement == null ? null : NameElement.InnerXml; } set { if (value == null) NameElement = null; else { var element = new XmlDocument().CreateElement("name"); element.InnerXml = value; NameElement = element; } } } } 

这消除了对booksBookAuthorName类的需要。

示例小提示显示对应于您的XML的完整类的反序列化,最初从http://xmltocsharp.azurewebsites.net/生成,之后根据需要修改了Author