【发布时间】:2019-08-20 13:09:38
【问题描述】:
我正在尝试获取此 XML 文件的 BK01 字段。我不确定如何处理 XML 文件的“FLOOR”元素以及如何正确设置类以提取 BK01 值。
方法:
public void GetBook()
{
string path = directoryFile;
XmlSerializer xmlSerial = new XmlSerializer(typeof(LibraryCollection));
StreamReader sr = new StreamReader(path);
LibraryCollection entity = xmlSerial.Deserialize(sr) as LibraryCollection;
lblXMLName.Text = entity.BK01;
}
类
[Serializable()]
[System.Xml.Serialization.XmlRoot("LIBRARY")]
public class LibraryCollection
{
[System.Xml.Serialization.XmlElement("BK01")]
public string BK01 { get; set; }
}
XML 文件:
<?xml version="1.0"?>
<LIBRARY>
<FLOOR>
<BK01 Value="Book1"/>
<BK02 Value="Book2"/>
</FLOOR>
</LIBRARY>
【问题讨论】:
-
从外观上看不考虑楼层吗?反序列化需要一个对象来表示地板。或者使用 XElement 上的 XPath 到达 //Library/Floor/BK01
标签: c# xml serialization