ho dati come:XQuery: creare un nuovo elemento con un nome specifico?
<td>USERID</td>
<td>NAME</td>
<td>RATING</td>
voglio trasformarlo in:
<userid></userid>
<name></name>
<rating></rating>
Come posso fare questo?
ho dati come:XQuery: creare un nuovo elemento con un nome specifico?
<td>USERID</td>
<td>NAME</td>
<td>RATING</td>
voglio trasformarlo in:
<userid></userid>
<name></name>
<rating></rating>
Come posso fare questo?
Utilizzare un computed element constructor per generare un elemento con il valore lower-case
delle text
nodi per ciascuno degli elementi td
.
Un costruttore elemento calcolato crea un nodo elemento, consentendo sia il nome e il contenuto del nodo da calcolare.
Ai fini di questo esempio, supponendo che il vostro XML è in un file chiamato foo.xml, si potrebbe fare qualcosa di simile:
<doc>
{
for $name in doc('foo.xml')//td/text()
return element {lower-case($name)} {''}
}
</doc>
per produrre questo:
<?xml version="1.0" encoding="UTF-8"?>
<doc>
<userid/>
<name/>
<rating/>
</doc>
È inoltre possibile valutare la funzione lower-case()
come parte dell'espressione XPATH anziché il costruttore di elementi, li ke questo:
<doc>
{
for $name in doc('foo.xml')//td/text()/lower-case(.)
return element {$name} {''}
}
</doc>
return <doc>{
for $d in $doc/element()/text()
return element{fn:lower-case($d)} {}}</doc>
dove $ doc memorizza il Xml.