XmlToDataset

<< Fare clic per visualizzazione il sommario >>

Percorso:  Il linguaggio OEL > Funzioni >

XmlToDataset

Converte una stringa in formato XML in un dato strutturato.

 

Funzione

XmlToDataset(string xml, IDataSet fieldMapping, IDataSet fieldRenaming, IDataSet valuesIfNull)

 

La funzione può essere utilizzata nelle seguenti modalità:

1) XmlToDataset(string json, DatasetConversionOptions datasetConversionOptions)

2) XmlToDataset(string xml, IDataSet fieldMapping, IDataSet fieldRenaming, IDataSet valuesIfNull)

 

Output

Nome

Descrizione

Tipo

returnValue

Dato strutturato corrispondente alla stringa XML indicata in input.

DataSetValue

 

Modalità 1)

JsonToDataset(string json, DatasetConversionOptions datasetConversionOptions)

 

Input

Nome

Descrizione

Tipo

Opzionale

xml

Stringa contenente un testo in formato XML.

String

 

datasetConversionOptions

Dato strutturato utile a definire le opzioni di conversione.

DatasetConversionOptions

 

Output

Nome

Descrizione

Tipo

Opzionale

returnValue

Dato strutturato corrispondente alla stringa XML indicata in input.

DataSetValue

 

 

 

Modalità 2)

XmlToDataset(string xml, IDataSet fieldMapping, IDataSet fieldRenaming, IDataSet valuesIfNull)

 

Input

Nome

Descrizione

Tipo

Opzionale

xml

Stringa contenente in formato XML.

String

 

fieldMapping

Dato strutturato utile a specificare quali campi del XML devono essere riportati nel dato strutturato risultato indipendentemente dal livello della struttura. Ogni elemento del dato strutturato ha come chiave il nome dei campi del XML da restituire al primo livello del dato strutturato e come valore vuoto o un eventuale nuovo nome che si vuole assegnare all'elemento al primo livello nel dato strutturato restituito. Se il nome del campo del XML che si vuole estrarre è riportato in un percorso del XML occorre specificare come chiave l'intero percorso del XML con i nomi dei campi separati da ":" .

IDataSet

 

fieldRenaming

Dato strutturato utile a specificare come rinominare i campi del XML nel dato strutturato risultato. Ogni elemento del dato strutturato fieldRenaming ha come chiave il nome del campo XML e come valore il nuovo nome nel corrispondente dato strutturato restituito dal metodo.

E' possibile assegnare a fieldRenaming valore null per non effettuare il rinomina dei campi.

IDataSet

 

valuesIfNull

Dato strutturato contenente i valori da assegnare ai campi del XML specificati se il relativo valore è null.

Ad esempio se valuesIfNull contiene due elementi:

- valuesIfNull["first_name"] = ""

- valuesIfNull["trim_user"] = false

Il dato strutturato restituito avrà:

- tutti i campi denominati "first_name" (a qualsiasi livello) valorizzati con "" invece di null

- tutti i campi denominati "trim_user" (a qualsiasi livello) valorizzati con false invece di null..

IDataSet

 

Output

Nome

Descrizione

Tipo

Opzionale

returnValue

Dato strutturato corrispondente alla stringa XML indicata in input.

IDataSet

 

 

Commenti

Restituisce

Condizione

Dato strutturato con tutti i campi del XML

Se fieldMapping risulta null o DataSet().

Dato strutturato con alcuni campi del XML

Se i valori di fieldMapping sono null o vuoti implica che il nome delle chiavi presenti nel dato strutturato non subirà modifiche.

Dato strutturato in cui i nomi dei campi sono uguali a quelli della struttura XML

Se fieldRenaming è risulta null o vuoto.

Dato strutturato in cui i nomi dei campi sono rinominati rispetto a quelli della struttura XML

Se fieldRenaming è valorizzato. Ad esempio se fieldRenaming è pari a Dataset('idpagina','NumeroPagina') , ogni campo del XML denominato idpagina (indipendentemente dal livello di annidamento) sarà rinominato in NumeroPagina nel dato strutturato risultato.

 

Esempio 1

Dato il seguente XML

 

<widget>

 <debug>on</debug>

 <window title="Sample Konfabulator Widget">

   <name>main_window</name>

   <width>500</width>

   <height>500</height>

 </window>

 <image src="Images/Sun.png" name="sun1">

   <hOffset>250</hOffset>

   <vOffset>250</vOffset>

   <alignment>center</alignment>

 </image>

 <text data="Click Here" size="36" style="bold">

   <name>text1</name>

   <hOffset>250</hOffset>

   <vOffset>100</vOffset>

   <alignment>center</alignment>

   <onMouseUp>

     sun1.opacity = (sun1.opacity / 100) * 90;

   </onMouseUp>

 </text>

</widget>

 

Si richiede la XmlToDataset con valore fieldMapping= DataSet() , fieldRenaming = DataSet('window','window_DS','alignment','alignment_DS') , valuesIfNull = DataSet().

 

il dato strutturato risultato che si ottiene è il seguente:

 

Dataset

 Key: 'widget', Type: Dataset, Value:

  Key: 'debug', Type: String, Value: 'on'

  Key: 'window_DS', Type: Dataset, Value:

    Key: '@title', Type: String, Value: 'Sample Konfabulator Widget'

    Key: 'name', Type: String, Value: 'main_window'

    Key: 'width', Type: String, Value: '500'

    Key: 'height', Type: String, Value: '500'

  Key: 'image', Type: Dataset, Value:

    Key: '@src', Type: String, Value: 'Images/Sun.png'

    Key: '@name', Type: String, Value: 'sun1'

    Key: 'hOffset', Type: String, Value: '250'

    Key: 'vOffset', Type: String, Value: '250'

    Key: 'alignment_DS', Type: String, Value: 'center'

  Key: 'text', Type: Dataset, Value:

    Key: '@data', Type: String, Value: 'Click Here'

    Key: '@size', Type: String, Value: '36'

    Key: '@style', Type: String, Value: 'bold'

    Key: 'name', Type: String, Value: 'text1'

    Key: 'hOffset', Type: String, Value: '250'

    Key: 'vOffset', Type: String, Value: '100'

    Key: 'alignment_DS', Type: String, Value: 'center'

    Key: 'onMouseUp', Type: String, Value: '

     sun1.opacity = (sun1.opacity / 100) * 90;

   '

Esempio 2

Dato il seguente XML

 

<widget>

 <debug>on</debug>

 <window title="Sample Konfabulator Widget">

   <name>main_window</name>

   <width>500</width>

   <height>500</height>

 </window>

 <image src="Images/Sun.png" name="sun1">

   <hOffset>250</hOffset>

   <vOffset>250</vOffset>

   <alignment>center</alignment>

 </image>

 <text data="Click Here" size="36" style="bold">

   <name>text1</name>

   <hOffset>250</hOffset>

   <vOffset>100</vOffset>

   <alignment>center</alignment>

   <onMouseUp>

     sun1.opacity = (sun1.opacity / 100) * 90;

   </onMouseUp>

 </text>

</widget>

 

Si richiede la XmlToDataset con valore fieldMapping= DataSet('widget:window','') , fieldRenaming = DataSet() , valuesIfNull = DataSet().

 

il dato strutturato risultato che si ottiene è il seguente:

 

Dataset

 Key: 'window', Type: Dataset, Value:

  Key: '@title', Type: String, Value: 'Sample Konfabulator Widget'

  Key: 'name', Type: String, Value: 'main_window'

  Key: 'width', Type: String, Value: '500'

  Key: 'height', Type: String, Value: '500'