【发布时间】:2014-09-07 05:06:43
【问题描述】:
我有一些数据存储在使用此http://www.codeproject.com/Tips/725375/Tiny-XML-Serialization-for-Cplusplus xml 序列化程序序列化的 xml 文件中。所以我的 Xml 文件看起来像:
类型 1:
<SerializableClass Type="ApplicationSettings" Version="2.1">
<Member Name="Setting1">Settings string 1</Member>
<Member Name="Setting2">Settings string 2</Member>
<Member Name="Setting3">Settings string 3</Member>
<Member Name="Setting4">1234</Member>
<Member Name="Setting5">5678</Member>
<Member Name="Setting6">false</Member>
<Member Name="Setting7">true</Member>
<Class Name="Login" Type="DatabaseLogin" Version="1">
<Member Name="HostName">my.db.Settings.server.local</Member>
<Member Name="Port">2000</Member>
<Member Name="User">john.smith</Member>
<Member Name="Password">newPassword</Member>
</Class>
<Collection Name="LastUsedDocuments">
<Class Type="LastUsedDocument" Version="1">
<Member Name="Name">Document #1</Member>
<Member Name="Path">c:\temp\</Member>
<Member Name="Size"></Member>
</Class>
<Class Type="LastUsedDocument" Version="1">
<Member Name="Name">Document #2</Member>
<Member Name="Path">c:\temp\</Member>
<Member Name="Size"></Member>
</Class>
<Class Type="LastUsedDocument" Version="1">
<Member Name="Name">Document #3</Member>
<Member Name="Path">c:\temp\</Member>
<Member Name="Size"></Member>
</Class>
<Class Type="LastUsedDocument" Version="1">
<Member Name="Name">Document #4</Member>
<Member Name="Path">c:\temp\</Member>
<Member Name="Size"></Member>
</Class>
<Class Type="LastUsedDocument" Version="1">
<Member Name="Name">Document #5</Member>
<Member Name="Path">c:\temp\</Member>
<Member Name="Size"></Member>
</Class>
</Collection>
现在我想使用 System.xml.linq 工具解析此类 xml 文件,但我发现这并不容易,因为我需要检查每个“名称”属性以找出对象的类型。
我更容易阅读这种类型的 xml: 类型 2:
<LastUsedDocuments>
<LastUsedDocument>
<Name>Document #1</Name>
<Path>c:\temp\</Path>
<Size></Size>
</LastUsedDocument>
<LastUsedDocument>
<Name>Document #1</Name>
<Path>c:\temp\</Path>
<Size></Size>
</LastUsedDocument>
</LastUsedDocuments>
但是我无法重写所有的 xml 文件,所以我正在寻找一种方法来像读取这种类型 2 xml 一样容易地读取这种类型 1 的 xml 文件
您能帮我如何使用 system.xml.linq 吗?
【问题讨论】:
标签: c# .net xml linq xml-parsing