读取 XmlElement 和 XmlAttribute

Posted

技术标签:

【中文标题】读取 XmlElement 和 XmlAttribute【英文标题】:Read XmlElement and XmlAttribute 【发布时间】:2014-02-26 19:35:00 【问题描述】:

反序列化 XML、XMLElement、XMLAttribute

XML:

<PET>
  <RES>Correct</RES>
  <PC version="1.1">
    <MESSAGE conf="1">SMS</DESC>
    <URL>www.google.com</URL>
  </PC>
  <PRU>200</PRU>
</PET>

类:

[XmlRoot("PET")]
public class Prueba

    [XmlElement("RES")]
    public string Res  get; set; 

    [XmlElement("PRU")]
    public string Pru  get; set; 

    //PC Attribute
    //MESSAGE element AND Attribute
    //URL element

方法:

public void Prueba()

    Prueba p = new Prueba();

    XmlSerializer serializer = new XmlSerializer(p.GetType());
    using (StreamReader reader = new StreamReader("Repositories/Local/Prueba.xml"))
    
        p = (Prueba)serializer.Deserialize(reader);
    

如何读取属性&lt;PC&gt;MESSAGE元素(属性太)和URL

【问题讨论】:

使用 Visual Studio 的 XSD.exe 实用程序从您的 xml 中创建 c# 类。 【参考方案1】:

添加

    [XmlElement("PC")]
    public PC pc  get; set; 

并为 PC 创建类,

[XmlRoot("PET")]
public class PC

    [XmlElement("MESSAGE")]
    public string MES  get; set; 

    [XmlElement("URL")]
    public string url  get; set; 

【讨论】:

以上是关于读取 XmlElement 和 XmlAttribute的主要内容,如果未能解决你的问题,请参考以下文章

无法将类型为“System.Xml.XmlComment”的对象强制转换为类型“System.Xml.XmlElement”

XmlNode和XmlElement区别

使用 XMLRoot/XMLElement 和使用 Serializable() 属性之间的区别(在 c# 中)

VB.NET 和 XmlElement() 如何从 API 调用中获取元素的值?

如何删除 XmlElement ? (XmlNode 与 XmlElement)

将 XmlNode 添加到 XmlElement