【发布时间】:2019-07-19 09:51:06
【问题描述】:
所以我尝试使用 linq 将下面的这个 xml 代码解析到类中,但我很难获得内部列表。 xml 包含在我正在解析的 XDocument 中。
<Response>
<ResponseTransaction>
<transaction>
<tranId>3216</tranId>
<tranName>TestTran01</tranName>
<tranResultList>
<tranResult>
<state>Expired</state>
<created>2019-02-23</created>
<docList>
<doc id="1" name="Doc1" />
<doc id="2" name="Doc2" />
<doc id="3" name="Doc3" />
<doc id="4" name="Doc4" />
</docList>
<roleList>
<role role="usrRole" id="1">
<firstName>Jack</firstName>
<lastName>Daniels</lastName>
<email>jd@gmail.com</email>
<docList>
<doc id="1" name="Doc1" status="removed" />
<doc id="2" name="Doc2" status="current" />
<doc id="3" name="Doc3" status="current" />
<doc id="4" name="Doc4" status="current" />
</docList>
</role>
</roleList>
</tranResult>
<tranResult>
<state>undefined</state>
<created>2019-02-24</created>
<docList>
<doc id="1" name="Doc1" />
<doc id="2" name="Doc2" />
<doc id="3" name="Doc3" />
<doc id="4" name="Doc4" />
</docList>
<roleList>
<role role="usrRole" id="1">
<firstName>Jack</firstName>
<lastName>Daniels</lastName>
<email>jd@gmail.com</email>
<docList>
<doc id="1" name="Doc1" status="removed" />
<doc id="2" name="Doc2" status="current" />
<doc id="3" name="Doc3" status="current" />
<doc id="4" name="Doc4" status="current" />
</docList>
</role>
</roleList>
</tranResult>
<tranResult>
<state>Current</state>
<created>2019-02-25</created>
<docList>
<doc id="1" name="Doc1" />
<doc id="2" name="Doc2" />
<doc id="3" name="Doc3" />
<doc id="4" name="Doc4" />
</docList>
<roleList>
<role role="usrRole" id="1">
<firstName>Jack</firstName>
<lastName>Daniels</lastName>
<email>jd@gmail.com</email>
<docList>
<doc id="1" name="Doc1" status="removed" />
<doc id="2" name="Doc2" status="current" />
<doc id="3" name="Doc3" status="current" />
<doc id="4" name="Doc4" status="current" />
</docList>
</role>
</roleList>
</tranResult>
</tranResultList>
</transaction>
</ResponseTransaction>
</Response>
这是我正在使用的课程。
public class Transaction {
public string TranId { get; set; }
public string TranName { get; set; }
public List<TranResult> TranResultList { get; set; }
}
public class TranResult {
public string State { get; set; }
public string DateCreated { get; set; }
public List<Document> DocumentList { get; set; }
public List<Role> RoleList { get; set; }
}
public class Document {
public string Id { get; set; }
public string Name { get; set; }
public string status { get; set; }
}
public class Role {
public string Id { get; set; }
public string RoleName { get; set; }
public User user { get; set; }
}
public class User {
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
public List<Document> DocumentList { get; set; }
}
如果此 XML 文档中没有内部列表,那么它会很简单,我只需执行一个简单的 LINQ 查询即可完成。我不确定我是否可以遍历内部列表。
感谢任何帮助。
【问题讨论】:
-
您已经给出了 XML 和 C# 类的一个很好的示例,但并未真正展示您的解析代码在哪里。获取 XML sn-ps 没有问题——它们应该代表足够的数据来实例化您的对象。真正的绊脚石是什么?