Christian Castelli
a- a+

Creare documenti XML

ColdFusion fornisce molte funzioni per gestire i documenti XML. Questa parte della guida parlerà di queste funzioni e di come impiegarle efficacemente.

Creare documenti XML

Ci sono molti modi per creare nuovi documenti XML, i quali vengono trattati da ColdFusion come delle strutture. L'elemento radice di un documento XML può essere raggiunto così:

xmlDoc.xmlRoot;<!--- oppure... --->
xmlDoc.rootName 
<!--- dove l'elemento radice è  <rootName/>. --->

XmlParse()

La funzione XmlParse() viene usata per convertire una stringa XML in un oggetto rappresentante un documento XML, il che permette di interagire con esso tramite varie funzioni ColdFusion. La funzione ha i seguenti parametri:

Parametri di XmlParse()

Parametro

Descrizione

xmlText Obbligatorio. Può assumere uno qualsiasi dei seguenti valori:
  • una stringa XML;
  • un percorso assoluto o un URL ad un file XML.
caseSensitive Valore booleano opzionale. Se è true (false di default), le proprietà dell'oggetto (elementi e attributi) saranno case sensitive. Quando un oggetto è case sensitive, si deve usare la notazione a parentesi per riferirsi ad elementi ed attributi.
validator Opzionale. Può assumere uno dei seguenti valori:
  • una stringa contenente una DTD o un XML Schema;
  • un percorso assoluto o un URL ad un DTD o un XML Schema.

Il seguente esempio mostra come usare tale funzione.

Es.1: XmlParse.cfm

<html>
  <head>
  <title>XmlParse()</title>
  </head>
  <body>
  <h1>XmlParse()</h1>
  <cfset xmlGeorge=XMLParse(ExpandPath("George.xml"))>
  <cfoutput>
   <h2>#xmlGeorge.Name.XmlAttributes.Title# #xmlGeorge.Name.FirstName# #xmlGeorge.Name.LastName#</h2>
  </cfoutput>
  <cfdump var="#xmlGeorge#">
  </body>
</html>

 

<a href="/img/22/iframe_CF_xml1.html" title= "Vedi esempio">Vedi codice</a>;

 

In un browser, l'esempio appena trattato apparirà come segue:

Risultato di XmlParsE() nel browser
Fig1: output del codice dell'esempio 1

Come potete vedere, le proprietà del documento XML possono essere usate come una struttura ColdFusion. Gli elementi vengono riferiti come proprietà dirette del loro elemento genitore, mentre gli attributi devono essere richiamati attraverso la struttura XmlAttributes.

XmlNew(), XmlElemNew(), xmlRoot, XmlChildren, XmlAttributes

I nuovi documenti XML possono essere creati da zero usando la funzione XmlNew().Gli elementi vengono aggiunti tramite la funzione XmlElemNew(), la quale richiede l'oggetto rappresentante il documento XML del quale l'elemento sarà parte e il nome del nuovo elemento. L'emento radice dovrebbe essere assegnato alla proprietà xmlRoot del documento XML. elementi e attributi sono posizionati nel documento tramite XmlChildren e XmlAttributes. L'esempio seguente mostra come creare un documento XML da zero.

Es.2: XmlNew.cfm

<!--- Crea un documento XML --->
  <cfset docGeorge=XmlNew()>
    <!--- Setta l'elemento radice --->
  <cfset docGeorge.xmlRoot = XmlElemNew(docGeorge,"Name")>
    <!--- setta un attributo per l'elemento radice --->
  <cfset docGeorge.xmlRoot.XmlAttributes.Title = "President">
    <!--- Crea gli elementi FirstName e LastName --->
  <cfset elemFirstName = XmlElemNew(docGeorge,"FirstName")>
  <cfset elemLastName = XmlElemNew(docGeorge,"LastName")>
    <!--- Setta i valori testuali per gli elementi appena creati --->
  <cfset elemFirstName.XmlText = "George">
  <cfset elemLastName.XmlText = "Washington">
    <!---   Appende gli elementi creati all'elemento radice ---> 
    <!---   Si noyi che questo può esser fatto usando xmlRoot o il nome dell'elemento radice  --->
  <cfset docGeorge.xmlRoot.XmlChildren[1] = elemFirstName>
  <cfset docGeorge.Name.XmlChildren[2] = elemLastName>
    <!--- Converte il documento XML in una stringa --->
  <cfset xmlString = ToString(docGeorge)>
    <!--- Setta il contenuto a text/xml, Svuota il buffer e stampa in output la stringa XML --->
  <cfcontent type="text/xml" reset="yes">
<cfoutput>#xmlString#</cfoutput>

 

<a href="/img/22/iframe_CF_xml2.html" title= "Vedi esempio">Vedi codice</a>;

 

Il codice appena presentato verrebbe così reso in un browser:

<Name TITLE="President">    <FirstName>George</FirstName>   <LastdName>Washington<LastdName></Name>


The <cfxml> Tag

Il tag <cfxml> può essere usato per creare direttamente in XML un oggetto rappresentante un documento XML. Quest'approccio tende ad essere molto più facile rispetto all'uso di XmlNew() se la struttura XML non viene determinata programmaticamente. L'esempio seguente mostra come usare <cfxml>.

Es.3: cfxml.cfm

<cfxml variable="docGeorge">
  <?xml version="1.0" encoding="iso-8859-1"?>
  <Name xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="Name.xsd" Title="President">
   <FirstName>George</FirstName>
   <LastName>Washington</LastName>
  </Name>
  </cfxml>    
    <!--- Converte il documento XML in una stringa --->
    <cfset xmlString = ToString(docGeorge)>
    <!--- Setta il contenuto a text/xml, Svuota il buffer e stampa in output la stringa XML --->
    <cfcontent type="text/xml" reset="yes">
<cfoutput>#xmlString#</cfoutput>

Vedi codice;



Ti potrebbe interessare anche

commenta la notizia

C'è 1 commento
Pier Paolo
Condividi le tue opinioni su questo articolo!