【发布时间】:2016-06-02 08:39:31
【问题描述】:
我收到了以下 XML,但无法更改结构:
<ReportSpec>
<Report ReportName="ReportName1" FilterMode="Container" Destination="EmailToUser:LoggedInUser" Format="PDF" AlertSource="ALL" CriticalStatus="True">
<Filter Students="ALL" />
</Report>
<Report ReportName="ReportName1" FilterMode="Container" Destination="EmailToUserGroup:UserAdmins" Format="PDF" AlertSource="ALL" CriticalStatus="False">
<Filter TestScore="1234" />
</Report>
<Report ReportName="ReportName1" FilterMode="Container" Destination="Dir:\\net.path.com\reports" Format="PDF" AlertSource="Failing">
<Filter Grade="ALL" />
</Report>
<Report ReportName="ReportName1" FilterMode="Container" Destination="EmailTo:a@b.com,joe@schmoe.com" Format="PDF" AlertSource="Failing">
<Filter Course="Programming" />
</Report>
</ReportSpec>
我使用的是C#(.NET 4.5),需要获取<FILTER>元素的属性名称和值,因为它们将在代码中成为应用程序逻辑的一部分(即我想收集TestScore="1234" 作为整个字符串,稍后使用)。我目前正在使用XMLSerializer 和StreamReader 加载XML 文档(但如果需要,我愿意改变我的方法)。我已经在 Visual Studio 2013 中完成了 PASTE SPECIAL --> XML to Classes,但是创建的 Filters 类不允许我对元素执行 foreach。这可以做到吗?如何做到?
【问题讨论】:
标签: c# xml-parsing