【发布时间】:2012-01-18 03:52:27
【问题描述】:
我有一个高度嵌套的 XML 文档,我需要将其加载到我的数据库中以进行额外处理。由于超出本讨论范围的各种原因,我需要将该结构“展平”,然后将其加载到 DataTables 中,然后我可以将其 SQLBulkCopy 复制到将被处理的数据库中。所以假设我的原始 XML 看起来像这样(我的嵌套更深,但这是基本思想):
<data>
<report id="1234" name="XYZ">
<department id="234" name="Accounting">
<item id="ABCD" name="some item">
<detail id="detail1" value="1"/>
<detail id="detail2" value="2"/>
<detail id="detail3" value="3"/>
</item>
</department>
</report>
</data>
我想将其扁平化为单个(尽管是冗余的)表结构,其中每个属性都变成一列(即 ReportId、ReportName、DepartmentId、DepartmentName、ItemId、ItemName、Detail1、Detail2、Detail3)。
所以我的问题只是“是否可以通过简单的 Linq 查询来完成此任务”?过去我只会写一些 XSLT 并完成它,但我很好奇 Linq 库是否可以完成同样的事情?
谢谢!
【问题讨论】:
-
如果你能展示你的样本输入在转换后的样子,那真的很有帮助。看你的描述还不清楚。
标签: linq linq-to-xml