请问一下,我的C#代码需要读取XML格式的文件,从里面读取时间、发货时间号和大箱码这几个字段,但目前该扫描枪设备,读取两类名称的文件,只有其中一种可以正常读取出来,另一种都提示格式错误,请问怎么解决,读取代码如下:
public List<XmlDataRecord> ParseXml(string xmlPath) //从XML文件中,取到箱码、出库单号,及发货时间;
{
var doc = XDocument.Load(xmlPath);
var records = new List<XmlDataRecord>();
foreach (var data in doc.Descendants("Data"))
{
records.Add(new XmlDataRecord
{
BigBoxCode = data.Attribute("Code")?.Value,
ShipmentNo = data.Attribute("CorpOrderID")?.Value,
ShipmentTime = DateTime.Parse(data.Attribute("ActDate")?.Value)
});
}
return records;
}
正常读取的文件格式内容是如下:
<?xml version="1.0" encoding="utf-8"?>
<Document xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xmlns:noNamespaceSchemaLocation="终端接口XML Schema-3.0.xsd" Version="3.0">
<Events>
<Event Name="ReturnWareHouseIn" MainAction="WareHouseIn">
<DataField>
<Data OwnerCorpID="" ToCorpID="" WrongCode="False" ActDate="2025-05-15 02:40:06" Actor="1" CorpOrderID="250515066164" Code="83014940284536853478" />
<Data OwnerCorpID="" ToCorpID="" WrongCode="False" ActDate="2025-05-15 02:40:05" Actor="1" CorpOrderID="250515066164" Code="83014940285815666475" />
</DataField>
</Event>
</Events>
</Document>
提示格式错误的内容如下:
<?xml version="1.0" encoding="utf-8"?>
<Document xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xmlns:noNamespaceSchemaLocation="终端接口XML Schema-3.0.xsd" Version="3.0">
<Events>
<Event Name="SalesWareHouseOut" MainAction="WareHouseOut">
<DataField>
<Data OwnerCorpID="" ToCorpID="" WrongCode="False" ActDate="2025-04-09 10:24:34" Actor="1" CorpOrderID="250409065617" Code="87017930000504432362" />
</DataField>
</Event>
</Events>
</Document>