Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用DataSet读取包含子节点的XML文件_C#_Xml - Fatal编程技术网

C# 使用DataSet读取包含子节点的XML文件

C# 使用DataSet读取包含子节点的XML文件,c#,xml,C#,Xml,我有一个XML文件要加载到数据集中 XML文件来自一个我无法控制的日志系统;这给我带来了一些挑战,我需要帮助来解析 XML文件如下所示: <LogEntry> <DateTime></DateTime> <AppId></AppId> <Description> <EncryptedData> <CipherValue></CipherValue> </Enc

我有一个XML文件要加载到数据集中

XML文件来自一个我无法控制的日志系统;这给我带来了一些挑战,我需要帮助来解析

XML文件如下所示:

<LogEntry>
<DateTime></DateTime>
<AppId></AppId>
<Description>
   <EncryptedData>
      <CipherValue></CipherValue>
   </EncryptedData>
</Description>
<Module></Module>
</LogEntry>
我想我需要一个XML模式——但我不确定如何编写它(即使对于上面的示例),以便以我想要的方式读取数据


如果您对此有任何帮助或指导,我们将不胜感激。

DataSet类不适用于通用XML输入和输出。它是关系数据库模型的内存表示。它不能表示任何不能表示为关系数据库的内容


您的数据可以建模为带有
DateTime
AppId
Module
列的
LogEntry
表。但是什么是描述?它不是
EncryptedData
表的外键-两边都没有id

如果我是你,我会研究XDocument(),而不是数据集,因为我不知道如何使用数据集使Description元素正确。如果可以选择,可以在将文本读入xml之前进行文本替换,只需删除“”和“”,只留下您关心的文本。数据集可能会采用这种方式。如果您坚持使用数据集,则可以执行以下操作
DataSet-DataSet=new-DataSet()
var dir=@“yourPath+your.xml的名称”
dataSet.ReadXml(dir)谢谢-我想我将创建自己的名为LogEntry的数据类,并通过XML循环并添加到LogEntry列表中。。。然后最后循环列表以显示任何方式。。。。
Console.WriteLine("Rows found = {0}", dt.Rows.Count);
foreach (DataRow row in dt.Rows)
{
    Console.WriteLine("{0} {1} {2}", 
    row["DateTime"], 
    row["AppId"],
    //row["Description"],
    row["Module"]
    );