为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 Linq Lambda 从给定密钥解析 XML 文件

如何使用 Linq Lambda 从给定密钥解析 XML 文件

C#
喵喵时光机 2021-09-19 16:49:25
我正在尝试使用 Linq 和 Lambda 表达式解析 xml 文档,但需要帮助。我想从中获取数据的节点是 "DiskDriveInfo" ,我也不确定如何处理下一个节点 "ResultCode i:nil="true" "我的代码:var xml = XDocument.Parse(InXML);var r = from x in xml.Elements("DiskDriveInfo")                select new                {                    ResultCode = x.Element("ResultCode").Value,                    ResultCodeDescription =                           x.Element("ResultCodeDescription").Value,                    AirbagDetails = x.Element("AirbagDetails").Value,                    ..                    ..                    WheelBase        = x.Element("WheelBase").Value              };输入是:<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope">  <s:Body>    <GetConvergedDataRequestResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://autoinsight.trn.co.za/types">      <ConvergedData xmlns:d4p1="http://schemas.datacontract.orgB2B.BusinessModels" i:type="ConvergedResults">        <AccidentHistory i:nil="true" />        <AlertInfo i:nil="true" />        <CloneInfo i:nil="true" />        <DiskDriveInfo>          <ResultCode i:nil="true" />          <ResultCodeDescription i:nil="true" />          <AirbagDetails>DRIVER, PASSENGER</AirbagDetails>......<WheelBase>2460</WheelBase>    </DiskDriveInfo>谢谢
查看完整描述

2 回答

?
千巷猫影

TA贡献1829条经验 获得超7个赞

您可以从下面的代码中编写,只需要根据您的 xml 文件创建类,下面是将 xml 直接转换为类对象的函数


    public T DeserializeData(string dataXML)

    {

         XmlDocument xDoc = new XmlDocument();

         xDoc.LoadXml(dataXML);

         XmlNodeReader xNodeReader = new XmlNodeReader(xDoc.DocumentElement);

         XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));

         var modelData = xmlSerializer.Deserialize(xNodeReader);

         T deserializedModel = (T)modelData ;

         return deserializedModel;

    }


查看完整回答
反对 回复 2021-09-19
  • 2 回答
  • 0 关注
  • 173 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信