【发布时间】:2015-06-10 18:16:11
【问题描述】:
所以我正在开发一个应用程序,我希望它能够动态解析 xml 文件、获取属性并填充基于 xml 文件中存在的元素创建的表单。然后可以编辑这些值,并将其写回到最初打开的 xml 文件中。
我已经能够解析、将值保存到数据库、填充表单并通过硬编码写回原始 xml 文件,我想我对动态“数据库”结构(一个字典,其中键是节点的名称,如果我想存储节点的子节点信息,则值为字典,如果我在元素的最远嵌套子节点中,则为字符串。
我被困在如何获取我需要的信息以及如何将其存储在我想出的“数据库”结构中。我做过研究,看到人们使用“动态”对象和 linq。但我所看到的一切似乎都涉及在运行时知道他们需要的路径名。关于我应该如何实际解析文件和获取数据的任何想法,首先?我想如果我能弄清楚这一点,其余的应该就位了。
假设我有这个 xml
<users>
<user1 age="43">John Doe</user1>
<user2 age="40">Jane Doe</user2>
</users>
一个示例数据库设置类似于Dictionary<users, Dictionary<user1, Dictionary<name,John Doe>
你可以去哪里 Key("users").Key("user1").Key("name").Value 得到 John Doe 或类似的东西。
对于我的数据库设置的任何其他建议也将不胜感激
【问题讨论】:
-
我会研究 xml 序列化。在我看来,这是进行 xml 解析的最简单和最有效的方法。 msdn.microsoft.com/en-us/library/58a18dwa%28v=vs.110%29.aspx
-
为什么对于看起来相同的元素有不同的标签定义(user1 和 user2)?如果您需要指定用户 ID,
<user id="1" age="43">John Doe</user>会更惯用。 -
我想我这样做是因为我将标签名称作为嵌入字典行下方的某个键,并且有多个用户,所以我的键名不会是唯一的。
标签: c# xml parsing dynamic data-storage