【发布时间】:2012-09-24 15:43:30
【问题描述】:
鉴于以下 XML(Excel XML 数据表中的两行),我想查找所有 Cost 值并找到相关的 AltID
...
<Row ss:AutoFitHeight="0">
<Cell ss:StyleID="s62"><Data ss:Type="String" AltID="1" ColumnHeader="AltName">Alternative 2</Data></Cell>
<Cell ss:StyleID="s62"><Data ss:Type="Number" ColumnHeader="Total">0.105468638</Data></Cell>
<Cell ss:StyleID="s64"><Data ss:Type="Number" ColumnHeader="Cost">123</Data></Cell>
<Cell ss:StyleID="s64"><Data ss:Type="Number" ColumnHeader="Risk">456</Data></Cell>
</Row>
<Row ss:AutoFitHeight="0">
<Cell ss:StyleID="s62"><Data ss:Type="String" AltID="2" ColumnHeader="AltName">Alternative 3</Data></Cell>
<Cell ss:StyleID="s62"><Data ss:Type="Number" ColumnHeader="Total">1.7803949999999999</Data></Cell>
<Cell ss:StyleID="s64"><Data ss:Type="Number" ColumnHeader="Cost">123</Data></Cell>
<Cell ss:StyleID="s64"><Data ss:Type="Number" ColumnHeader="Risk">456</Data></Cell>
</Row>
...
我可以很容易地找到成本,但我需要找到一种方法,在给定成本的情况下,“上”一级到 行,然后找到 所在的单元格ColumnHeader 等于 AltName,然后给我 AltID 属性。
Dim costs = From item In dg...<Table>...<Row>...<Cell>...<Data> Select item Where item.@ColumnHeader = "Cost"
For Each i In costs
dim CostValue as Integer = i.value
dim AltID as Integer = ...
Next
【问题讨论】:
-
为什么要使用linq?为什么不使用简单的 XPath 查询?