c# - 将 XML 数据转换为 C# 类
问题描述
我的项目是 Asp.net Core
我想将 XML 数据转换为 C# 类,XML 数据有一个节点PersonelInfo
我尝试读取 XML 但它的代码不起作用。我该如何解决这个代码?我的问题是什么?
var xmlGetDetailsUser = new XmlDocument();
xmlGetDetailsUser.LoadXml(await responseMessageGetDetailsUser.Content.ReadAsStringAsync());
using (StringReader reader = new StringReader(xmlGetDetailsUser.InnerXml))
{
try
{
PersonelInfo data = (PersonelInfo)(serializer.Deserialize(reader));
}
catch (System.Exception e)
{ }
}
班级
public class PersonelInfo
{
public string PersonelCode { get; set; }
public string Email { get; set; }
}
xmlGetDetailsUser.InnerXml
有这个值:
<?xml version=\"1.0\" encoding=\"utf-8\"?>
<ArrayOfPersonelInfo xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns=\"sample url .....\">
<PersonelInfo>
<PersonelCode>99999</PersonelCode>
<Email>test@test.com</Email>
</PersonelInfo>
</ArrayOfPersonelInfo>
运行我的程序时在 try catch 中显示此异常
XML 中有错误
解决方案
您应该设置命名空间XmlSerializer
并将其类型更改为List<PersonelInfo>
.
尝试这个:
XmlSerializer serializer = new XmlSerializer(typeof(List<PersonelInfo>), "sample url ....");
XmlReaderSettings settings = new XmlReaderSettings();
using (StringReader textReader = new StringReader(await responseMessageGetDetailsUser.Content.ReadAsStringAsync()))
{
using (XmlReader xmlReader = XmlReader.Create(textReader, settings))
{
var data = (List<PersonelInfo>)serializer.Deserialize(xmlReader);
}
}
推荐阅读
- typescript - 有没有办法为 react-native Layout 设置纵横比?
- java - 如何优化参数
- asp.net - Docker 运行给出“CreateProcess:Windows 系统调用失败:系统找不到指定的文件。(0x2)”
- java - 文件未保存到目录中
- python - 如何最大化加/减组合?
- python-3.x - 如何使用 Python 3 使用 pandas 库绘制函数
- python - SQLAlchemy:找不到主连接条件的任何相关外键列
- coldfusion - 包含 JSP 文件的函数在 Lucee 但不是 ACF 中返回空结果
- python - 为什么在准确率不变的情况下损失会减少?
- json - 比特币 RPC 身份验证问题 - regtest