Christian Castelli
a- a+

Creare documenti XML

ColdFusion fornisce molte funzioni per gestire i documentiXML. Questa parte della guida parlerà di questefunzioni e di come impiegarle efficacemente.

Creare documenti XML

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

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

XmlParse()

La funzione XmlParse() viene usata perconvertire una stringa XML in un oggetto rappresentante undocumento XML, il che permette di interagire con esso tramitevarie funzioni ColdFusion. La funzione ha i seguentiparametri:

Parametri di XmlParse()

Parametro

Descrizione

xmlText Obbligatorio. Può assumere uno qualsiasi deiseguenti valori:
  • una stringa XML;
  • un percorso assoluto o un URL ad un file XML.
caseSensitive Valore booleano opzionale. Se è true (false didefault), le proprietà dell'oggetto(elementi e attributi) saranno case sensitive. Quandoun oggetto è case sensitive, si deve usare lanotazione a parentesi per riferirsi ad elementi edattributi.
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 XMLpossono essere usate come una struttura ColdFusion. Glielementi vengono riferiti come proprietà dirette delloro elemento genitore, mentre gli attributi devono essererichiamati attraverso la strutturaXmlAttributes.

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

I nuovi documenti XML possono essere creati da zero usando lafunzione XmlNew().Gli elementi vengono aggiuntitramite la funzione XmlElemNew(), la qualerichiede l'oggetto rappresentante il documento XML delquale l'elemento sarà parte e il nome del nuovoelemento. L'emento radice dovrebbe essere assegnato allaproprietà xmlRoot del documento XML.elementi e attributi sono posizionati nel documento tramiteXmlChildren e XmlAttributes.L'esempio seguente mostra come creare un documento XML dazero.

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 unbrowser:

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


The <cfxml> Tag

Il tag <cfxml> può essere usato percreare direttamente in XML un oggetto rappresentante undocumento XML. Quest'approccio tende ad essere moltopiù facile rispetto all'uso diXmlNew() se la struttura XML non vienedeterminata programmaticamente. L'esempio seguente mostracome 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