Bonjour,

J'ai un fichier XML avec la structure suivante:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<d:Table m:type="SP.SimpleDataTable">
  <d:Rows>
    <d:element m:type="SP.SimpleDataRow">
      <d:Cells>
        <d:element m:type="SP.KeyValue">
           <d:Key>Rank</d:Key>
           <d:Value>11.1544961929321</d:Value>
           <d:ValueType>Edm.Double</d:ValueType>
        </d:element>
        <d:element m:type="SP.KeyValue">
          <d:Key>DocId</d:Key>
          <d:Value>588</d:Value>
          <d:ValueType>Edm.Int64</d:ValueType>
        </d:element>
      </d:Cells>
    </d:element>
  </d:Rows>
<d:Rows>
    <d:element m:type="SP.SimpleDataRow">
      <d:Cells>
        <d:element m:type="SP.KeyValue">
           <d:Key>Rank</d:Key>
           <d:Value>11.1544961929321</d:Value>
           <d:ValueType>Edm.Double</d:ValueType>
        </d:element>
        <d:element m:type="SP.KeyValue">
          <d:Key>DocId</d:Key>
          <d:Value>600</d:Value>
          <d:ValueType>Edm.Int64</d:ValueType>
        </d:element>
      </d:Cells>
    </d:element>
  </d:Rows>
</d:Table>
J'ai écrit la requête XPATH suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
<xmldp:Query xmlns:xmldp="http://schemas.microsoft.com/sqlserver/2005/02/reporting/XmlDPQuery" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices">
 
<xmldp:ElementPath>d:Table{}/d:Rows{}/d:element{}/d:Cells{}/d:element</xmldp:ElementPath>
 
</xmldp:Query>
Comme cela j'obtiens un tableau avec 3 colonnes: Key, Value, ValueType le problème c'est que je perds mon groupement par ligne.

Pour identifier ma ligne il faudrait que je récupère une information stockée dans un nœud spécifique, le DocId et qu'il soit présent comment dans une colonne supplémentaire devant toutes mes /d:Cells{}/d:element ce qui donnerait dans mon exemple:



Est-ce possible ?

Merci