Voglio tradurre un file XML con i dati come il seguente:XSLT su SSRS relazione
<FlatData>
<Details1_Collection>
<Details1 Customer1="Customer" Total1="3" />
...
</Details1_Collection>
</FlatData>
I dati Sono interessato è gli attributi ei loro valori in ogni Details1
. Il problema è che questi attributi non sono necessariamente andando essere lo stesso in ogni file XML che voglio tradurre, e voglio un XSL general purpose in grado di gestire tale Details1
come questi:
<Details1 Customer1="Customer" Total1="3" />
<Details1 Name="Jim" Age="14" Weight="180" />
<Details1 Date="2009-07-27" Range="1-5" Option1="True" />
questi diversi Details1
no si verificano nello stesso file XML di origine, ma piuttosto in file diversi. Tuttavia, mi piacerebbe usare lo stesso XSL su ciascuno.
Stavo pensando che avevo bisogno di qualcosa come <xsl:value-of select="@attribute_name"/>
ma cosa devo mettere per @attribute_name
quando non so in anticipo quali attributi ci saranno? Inoltre, come posso acquisire il nome dell'attributo? Vorrei far esplodere la XML di origine sopra a qualcosa di simile:
<Details1>
<Customer1>Customer</Customer1>
<Total1>3</Total1>
</Details1>
Modifica: Grazie per le risposte! Sto avendo difficoltà a raggiungere più del seguente output, però:
<?xml version="1.0" encoding="UTF-8"?>
<FlatData>
<Details1_Collection></Details1_Collection>
</FlatData>
Ho provato entrambe le Lavinio di e risposte di Jörn Horstmann, così come il tentativo di combinare le due cose. Ho eseguito questo comando:
msxsl.exe -o output.xml input.xml transform.xsl
penso che qualcosa che sta ottenendo nel senso è una namespace nel file di input:
<Report Name="MyReport" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="MyReport">
Ciò si traduce in un file XML con quasi altrettanti linee come l'originale, l'XML di input, ma con tutti gli spazi vuoti salva la prima riga contenente ' xml version =" 1.0 "encoding =" utf-8 "?>'. –
Risulta che ho ottenuto una riga vuota invece dei dati che volevo a causa di un problema di namespace; domanda aggiornata, aggiunta la mia risposta. –