【发布时间】:2013-12-19 12:01:48
【问题描述】:
我需要解析具有可变数量节点的 xml 配置文件,而这些节点又包含可变数量的子节点。无论我有多少 VM 节点或 vmClient 节点,如何读取所有值?我在这个项目中使用 C# 和 VS2012。 顺便说一句,如果有更好的方法在 xml 文件中构造我的数据,请告诉我!这是xml文件:
<!--VM settings on ESX Server-->
<VM name="DE2008">
<vmLanguage value = "de"/>
<vmSnapshot value = "test"/>
<vmPowerOn value = "true"/>
<vmClients>
<vmClient name="ITXPPRO">
<vmClientSnapshot value="test2"/>
<vmClientLanguage value="it"/>
</vmClient>
<vmClient name="JPXPPRO">
<vmClientSnapshot value="test3"/>
<vmClientLanguage value="jp"/>
</vmClient>
</vmClients>
</VM>
<VM name="FR2003">
<vmLanguage value = "fr"/>
<vmSnapshot value = "test"/>
<vmPowerOn value = "true"/>
<vmClients>
<vmClient name="DAWIN7">
<vmClientSnapshot value="autotc"/>
<vmClientLanguage value="da"/>
</vmClient>
</vmClients>
</VM>
<!--SQL Servers used as database servers for ePO-->
<sqlServers>
<sqlName value = "DE2008SQL"/>
<sqlLanguage value = "de"/>
<sqlSnapshot value = "sql"/>
</sqlServers>
【问题讨论】:
-
你试过什么?你看过使用 Linq2Xml 吗?此外,一个文档中不能有多个 xml 根。
-
如果结构没有改变(经常),我建议你反序列化它,然后只迭代“常规”对象。检查lazyberezovsky的答案。
标签: c# xml xml-parsing