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
。
- 以编程方式提供文件路径作为“Microsoft Print to PDF”打印机的输入文件
- 使用ASP.NET从另一个页面返回后,为什么Page_Load没有触发 – ergo epic embarrassment :)
- 如何在C#中的任何其他时区将UTC时间转换为时间
- 将dd / MM / yyyy转换为MM / dd / YYYY
- unit testing返回void的方法
- C#左侧的分配必须是变量,属性或索引器
- 配置entity framework以从Azure CloudConfiguration文件中选择连接字符串?
- Lambda \ Anonymous函数作为参数
- 如何将数据表转换为类似ReportingService的矩阵?