<ndActivityLog repositoryId="AA-AAAA1AAA" repositoryName="Company Name" startDate="2013-07-05" endDate="2013-07-06">
<activity date="2013-07-05T06:42:35" name="open" host="00.00.00.00">
<user id="joebloggs@email.com" name="Joe Bloggs" memberType="I" />
<storageObject docId="0000-0000-0000" name="Opinion" size="356864" fileExtension="doc">
<cabinet name="Client and Matters">NG-5MIYABBV</cabinet>
<DocumentType>Legal Document</DocumentType>
<Author>Joe Bloggs</Author>
<Matter>1001</Matter>
<Client>R1234</Client>
</storageObject>
</activity>
</ndActivityLog>
这是 XML 的一个示例。文档中有大约 4000 个“活动”元素,内容级别各不相同。有些具有“客户”和“物质”元素,有些则没有。把它想象成一个表格,这些将是空白单元格,但列标题仍然存在。
我基本上需要将其解析为 SQL 数据库,保持数据结构。最重要的是,如果某个元素在某些示例中不存在,则需要引用该事实并将其保留为“空白单元格”。
var doc = XDocument.Load(path + "\\" + file + ".xml");
var root = doc.Root;
foreach (XElement el in root.Elements())
{
// Console.WriteLine(el.Nodes());
// Console.WriteLine(el.Value);
//Console.WriteLine(" Attributes:");
foreach (XAttribute attr in el.Attributes())
{
Console.WriteLine(attr);
// Console.WriteLine(el.Elements("id"));
}
Console.WriteLine("---------------------------");
// foreach (XElement element in el.Elements())
// {
// Console.WriteLine(" {0}: {1}", element.Name, element.Value);
// }
}
//hold console open
Console.ReadLine();
}
到目前为止的代码。输出如下所示
date="2013-07-06T17:07:42"
name="open"
host="213.146.142.50
我基本上需要提取每条信息,这样我就可以将它们存储在一个表格布局中。我对使用 XML 解析相当陌生,因此将不胜感激。