XML
Hippani Animator har muligheten til å laste XML-data og bruke den til å opprette datadrevet websider. XML kan bare lastes fra en webserver eller localhost. Hvis du prøver å laste alle XML på harddisken, har XML objekt statusen til 0. Noen nettlesere som Internet Explorer ikke tillater direkte tilgang til harddisken eller kryss domene XML.
XML kan legges til i biblioteket eller lastet inn fra en URL-adresse. Hvis du vil laste XML fra et annet domene enn en eksporterte HTML vert, XML må omadresseres fra en lokal serverside eller inkludere hodet Access-Control-Allow-Origin: *.
Vær forsiktig under analysering av XML objekt. Forskjellige nettlesere håndtere XML på forskjellige måter. Noen weblesere omfatter tomrom som tekstnoder, noen ikke. Noen nettlesere lar tvers av domener XML, noen ikke. Prøv liste noden detaljene i forskjellige nettlesere å se forskjellen.
Et grunnleggende eksempel på hvordan du legger et XML-dokument kalt XMLFile1 fra biblioteket.
OpenXML("XMLFile1",Result);
function Result(XML){
if(XML.status==200){
alert(XML.documentElement.nodeName);
}else{
alert("Error Code "+XML.status);
}
}
XML-eksempel
Dette eksemplet viser hvordan du skal lese en liste av frukt fra en XML-fil inn i en matrise.
<?xml version="1.0" encoding="utf-8" ?>
<List>
<Fruit>Apple</Fruit>
<Fruit>Banana</Fruit>
<Fruit>Orange</Fruit>
<Fruit>Pear</Fruit>
<Fruit>Pineapple</Fruit>
<Fruit>Grapes</Fruit>
</List>
OpenXML("XMLFile1",Result);
function Result(XML){
if(XML.status==200){
var Node=XML.documentElement.firstChild;
var List=new Array();
while(Node!=null){
if(Node.firstChild!=null){
List.push(Node.firstChild.nodeValue);
}
Node=Node.nextSibling;
}
alert("Loaded list. Length="+List.length+" First Item="+List[0]);
}else{
alert(XML.status+" Error!!!");
}
}
Sende XML
XML-funksjoner kan brukes til å sende data til en webserver. Så lenge som web-serveren svarer med gyldig XML. URL-adressen må også være gyldig, tegn slike mellomrom og tegnsetting må konverteres til URL koder f.eks plassen er % 20.
Dette eksemplet viser hvordan du kan sende en melding og forventer tilbake noe enkel XML <Success/>.
OpenXMLUrl("http://www.MyServer.com?Message=This%20is%20a%20Test", Result);
function Result(XML){
if(XML.status==200){
if(XML.documentElement.nodeName=="Success"){
alert("Message received");
}
}else{
alert(XML.status+" Error!!!");
}
}
Omdirigere XML
Hvis du trenger å laste XML fra et annet domene enn det som den eksporterte filmen ligger på, XML må bli Omdirigert fra en lokal serverside eller inkludere overskriften Access-Control-Allow-Origin: *. Dette er et eksempel på en ASP.NET side som kan brukes til å omdirigere våre RSS mate, slik at den vises, fôret kommer fra den samme serveren som HTML. Vi har også lagt til hodet for å vise hvordan det kan oppnås. Andre serversider kan brukes for eksempel PHP.
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Net" %>
<%WebClient WC = new WebClient();
string XML=WC.DownloadString("http://www.Hippani.com/?S=RSS");
Response.AddHeader("Access-Control-Allow-Origin", "*");
Response.ContentType = "text/xml";
Response.Write(XML);
%>
Skriptet
Åpne XML-Formatet
• Åpne en XML-fil til et XML-objekt. Denne funksjonen starter inne bakgrunnen og krever navnet på en XML-fil i biblioteket og en funksjon som XML-objektet som er sendt til, når den er lastet.
OpenXML("navn",Svar:Funksjonen);
|
Åpne XML-Url
• Åpne en XML-fil til et XML-objekt fra en URL-adresse. Denne funksjonen starter inne bakgrunnen og krever en URL-adresse og en funksjon som XML-objektet som er sendt til, når den er lastet.
OpenXMLUrl("http://",Svar:Funksjonen);
|
Åpne XML-metoden Url
• Åpne en XML-fil i et XML-objekt fra en URL-adresse. Denne funksjonen starter inne bakgrunnen og krever en URL og en funksjon som XML objekt sendes når den er lastet. HTTP-metoden kan være GET, POST, HEAD, OPTIONS, PUT, DELETE, TRACE. Noen metoder, slik som POST, tillate en datastreng sendes.
OpenXMLMethodUrl("http://","GET",null,Svar:Funksjonen);
|
OpenXMLMethodUrl("http://www.MySite.com/XML.php","POST","Name=Fruit&Value=Apple",Result);
function Result(XML){
}
XML-objekt
documentElement
• Rotnoden i XML-dokumentet.
|
status
• Statusen for XML-dokumentet. 0 - XML-objekt mislyktes. XML kan støttes ikke av denne leseren, siden kan være på et annet domene eller ikke på en web-server. 1 - URL-adressen er ugyldig. 2 - XMLEN er ugyldig. 200 - Suksess. 400 til 499 - forespørselen mislyktes. Filen finnes kanskje ikke, eller kan tilgang være nektet. 500 til 599 - svaret mislyktes. Serveren kan ikke returnere XML-dokumentet, kan det være en feil på webserveren.
|
XML-noden
attributes
• Returnerer attributtene for noden. f.eks <Node attribute1="Value1" attribute2="Value2" />"
|
nodeName
• Navnet på noden. En tekstnode kalles #Text.
|
nodeValue
• Verdien for noden. Verdien er en tekstnode, teksten.
|
Å få teksten i en node:
var InnerText=null;
if(ExampleNode.firstChild!=null){
InnerText=ExampleNode.firstChild.nodeValue;
}
nodeType
• Typen for noden.
|
parentNode
• Den overordnede noden.
|
firstChild
• Den første underordnede noden denne noden.
|
lastChild
• Den siste underordnede noden denne noden.
|
nextSibling
• Den neste noden.
|
previousSibling
• Den forrige noden.
|
Vis detaljene i alle underordnede noder i en node:
var Node=ExampleNode.firstChild;
var List="";
while(Node!=null){
List+=Node.nodeName+" "+Node.nodeType+" "+Node.nodeValue+"\r\n";
Node=Node.nextSibling;
}
alert(List);
XML-attributter
length
• Antall attributter i noden.
|
item
• Returnerer et attributt etter indeks.
.item(Index:Nummer)
|
getNamedItem
• Returnerer et attributt etter navn.
.getNamedItem("navn")
|
Vise alle attributtene i en node:
var Attr=ExampleNode.attributes;
var List="";
for(var i=0;i<Attr.length;i++){
List+=Attr.item(i).name+"="+Attr.item(i).value+"\r\n";
}
alert(List);
XML-attributt
name
• Navnet på attributtet.
|
value
• Verdien for attributtet.
|
Denne dokumentasjonen var oversatt fra engelsk, bruke en online oversetter. Vi beklager hvis du finner noen feil. Hvis du ønsker å hjelpe oss å gjøre rettelser. Det er en oversettelse redaktør i Hippani Animator (i Hjelp-menyen). Vi gir ut ledig eksportbevilling keys til noen som retter opp mer enn 100 uttrykk. Kontakt oss for mer informasjon.