【发布时间】:2014-12-03 08:26:48
【问题描述】:
我有一个包含动态内容的 xml 源
<content base="path">
<folder name="Test_dossier1">
<folder name="Test_dossier2">
<folder name="Test_dossier3">
<file name="test_fichier3.txt"/>
</folder>
<file name="test_fichier2.txt"/>
</folder>
<file name="test_fichier1.txt"/>
</folder>
<file name="adlcp_rootv1p2.xsd"/>
<file name="base64.js"/>
<file name="eniscormres.htm"/>
<file name="functions.js"/>
<file name="imscp_rootv1p1p2.xsd"/>
<file name="imsmanifest.xml"/>
</content>
所以文件夹节点是动态的。这可以有 X 个文件夹和文件节点子节点。 如何解析这个动态节点?
这是我提取文件节点的 xml 解析代码:
var files = content.SelectNodes ("file");
foreach (System.Xml.XmlNode element in files) {
var file = new OfflineGetCourseContentFile {
Id = q.Id,
File = element.Attributes.GetNamedItem ("name").Value
};
InsertSqliteDb.InsertIntoDB (file);
}
感谢您的帮助
【问题讨论】:
-
您发布的 C# 代码遇到什么问题?
-
通常在这种情况下,您将使用递归 - 创建一个采用文件夹节点的函数。在该函数中,您处理其子节点 - 对于每个文件夹节点,您再次调用相同的函数。
-
C.Evenhuis,你有例子吗?我不知道具体怎么做!
-
Siva Gopal,我的代码运行良好,我想知道如何从文件夹节点动态获取值。因为这个节点可以有n个子节点