我有以下XML:
<tickets>
<ticket>
<subject>ABC</subject>
<entries-field>
<entry-field>
<field-id>12345</field-id>
<value>New</value>
</entry-field>
<entries-field>
<ticket>
<ticket>
<subject>DEF</subject>
<entries-field>
<entry-field>
<field-id>67890</field-id>
<value>category_cc</value>
</entry-field>
<entry-field>
<field-id>12345</field-id>
<value>Pending</value>
</entry-field>
<entries-field>
<ticket>
<ticket>
<subject>GHI</subject>
<ticket>
</tickets>
我需要将其转换为C#数据表,如下所示:
Subject Status
------------------------
ABC New
DEF Pending
GHI
我尝试了很多方法,但没有运气。 如果有人能给出一个好主意,请欣赏。 非常感谢你。
答案 0 :(得分:1)
假设您使用的真实xml没有像上面那样损坏
XDocument xDoc = XDocument.Parse(xml);
var result = xDoc.Descendants("ticket")
.Select(n => new
{
Subject = n.Element("subject").Value,
Status = (string)n.Descendants("value").LastOrDefault()
})
.ToList();
答案 1 :(得分:1)
这是一个想法:
解析XML文件并针对每个ticket
subject
进行迭代,并为每个value
<field-id>12345</field-id>
将词典中的所有数据填入subject
作为键,value
作为值,如果未找到则将其留空