【发布时间】:2021-11-07 14:54:40
【问题描述】:
我在一行中的多个 xml 中有一个文件 .xml。
如何读取此文件并转换为对象?
我尝试使用此代码,如果只有一个,它就可以工作。
请大家帮忙,谢谢大家
[XmlRoot(ElementName = "DepartmentMaster")]
public class DepartmentMaster
{
[XmlElement(ElementName = "DepartmentId")]
public int DepartmentId { get; set; }
[XmlElement(ElementName = "Name")]
public string Name { get; set; }
[XmlElement(ElementName = "Description")]
public string Description { get; set; }
[XmlElement(ElementName = "test")]
public int Test { get; set; }
}
//string xml = "<DepartmentMaster><DepartmentId>267854</DepartmentId><Name>Purchase</Name><Description>Purchase Department</Description><test>1</test></DepartmentMaster>";
string xml = "<DepartmentMaster><DepartmentId>267854</DepartmentId><Name>Purchase</Name><Description>Purchase Department</Description><test>1</test></DepartmentMaster><DepartmentMaster><DepartmentId>267855</DepartmentId><Name>Purchase5</Name><Description>Purchase Department5</Description><test>5</test></DepartmentMaster>";
using (TextReader reader = new StringReader(xml))
{
System.Xml.Serialization.XmlSerializer deserializer = new System.Xml.Serialization.XmlSerializer(typeof(DepartmentMaster));
var model = (DepartmentMaster)deserializer.Deserialize(reader);
}
【问题讨论】:
-
这不是一个有效的 XML 文档。 XML 文档必须有一个根元素。您可以尝试将字符串包装成“
... ”。 -
是数据库中的一个表。它以相同的方式编写。我正在尝试上传带有主题的图片。但它没有出现
-
如果你想使用 XmlSerializer,你需要从有效的 XML 开始——你需要一个根元素。
-
我添加了一个指向数据库中表格图像的链接
-
XML 规范允许在根目录中使用一组标签。不要听别人说不同。当您在根目录中有一个数组时,它不是“格式良好”,而是有效的。有两种解决方案。 1)向字符串添加根。 string wellFormed = "
" + xml + " ; 2) Net 库确实喜欢格式正确的数据。所以您需要使用带有 XmlReaderSetting 的 XmlReader,如下所示: XmlReaderSettings settings = new XmlReaderSettings(); settings.ConformanceLevel = ConformanceLevel.Fragment;
标签: c# xml xmlserializer