Indhold

YouTube Brug af JavaScript

XMLFile XML

Hippani Animator kan indlæse XML-data og bruge dem til at oprette datadrevne web-sider. XML kan kun indlæses fra en webserver eller localhost. Hvis du forsøger at indlæse en XML på din harddisk, kan XML-objektet
måske have status lig med 0. Nogle browsere, f.eks. Internet Explorer tillader ikke direkte adgang til harddisken eller krydsdomæne XML.

XML kan føjes til biblioteket eller indlæses fra en URL-adresse. Hvis du har brug at indlæse XML fra et andet domæne end den, den eksporterede HTML er hostet på, skal XML omdirigeres fra en lokal server side eller inkluderes i header Access-Control-Allow-Origin: *.

Vær forsigtig, når du parser XML-objektet. Forskellige web-browsere håndterer XML på forskellige måder. Nogle browsere omfatter tomme rum som tekst, nogle gør ikke.
Nogle webbrowsere tillader cross domæne XML, nogle gør ikke. Prøv at liste node detaljerne i forskellige webbrowsere for at se forskellen.

Et grundlæggende eksempel på hvordan man indlæser et XML-dokument kaldes XMLFile1 i biblioteket.


OpenXML("XMLFile1",Result);
function Result(XML){
if(XML.status==200){
alert(XML.documentElement.nodeName);
}else{
alert("Error Code "+XML.status);
}
}

XML-eksempel

Dette eksempel viser, hvordan en liste med frugt læses fra en XML-fil ind i et array.


<?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!!!");
}
}

Afsende XML

XML-funktioner kan bruges til at sende data til en webserver. Så længe webserveren svarer med gyldig XML. URL-adressen skal også være gyldig. Tegn, som et mellemrum og tegnsætning skal være konverteret til URL koder f.eks. mellemrum is % 20.
Dette eksempel viser, hvordan du kan sende en besked og forvente at få noget simpelt XML tilbage <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 har brug at indlæse XML fra et andet domæne end det, den eksporterede film er hostet på, skal XMLl omdirigeres fra en lokal server side, eller inkludere headeren Access-Control-Allow-Origin: *. Dette er et eksempel på en ASP.NET side, som kunne bruges til at omdirigere vores RSS-feed, så det ser ud som om feed kommer fra den samme server som HTML-len. Vi har også tilføjet overskrift for at vise, hvordan der kan opnås. Andre server sider kunne bruges, så som 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);
%>

Script Script

Åbn XML • Åbn en XML-fil i et XML-objekt. Denne funktion starter i baggrunden og kræver, at navnet på en XML-fil i biblioteket og en funktion, som XML-objektet sendes til, når det er indlæst.

OpenXML("Navn",Svar:Funktion);

Åbn XML Url • Åbn en XML-fil i et XML-objekt fra en URL-adresse. Denne funktion starter i baggrunden og kræver en URL-adresse, og en funktion som XML-objektet sendes til, når det er indlæst.

OpenXMLUrl("http://",Svar:Funktion);

Open XML-metode Url • Åbne en XML-fil i et XML-objekt fra en URL-adresse. Denne funktion starter i baggrunden og kræver en URL-adresse og en funktion, som XML-objektet sendes til, når det er indlæst. Http-metoden kan være GET, POST, HEAD, OPTIONS, PUT, DELETE, TRACE. Nogle metoder, såsom POST, tillader en datastreng skal sendes.

OpenXMLMethodUrl("http://","GET",null,Svar:Funktion);

OpenXMLMethodUrl("http://www.MySite.com/XML.php","POST","Name=Fruit&Value=Apple",Result);
function Result(XML){

}

XML-objekt

documentElement • Rodnoden i XML-dokumentet.

status • Status for XML-dokumentet.
0 - XML-objekt mislykkedes. XML er muligvis ikke understøttet af denne browser, siden kan være på et andet domæne eller ikke på en web-server.
1 - URL-adressen er ugyldig.
2-XML er ugyldig.
200 - Succes.
400 til 499 - anmodningen mislykkedes. Filen kan ikke findes eller kan være nægtet adgang.
500 til 599 - svaret mislykkedes. Serveren kunne ikke returnere XML-dokumentet, der kan være en fejl på webserveren.

XML-Node

attributes • Returnerer attributterne for noden. f.eks. <Node attribute1="Value1" attribute2="Value2" />"

nodeName • Navnet på noden. En tekst node er opkaldt #Text.

nodeValue • Værdien af noden. For en node, tekst er værdien tekst.

At få teksten i en node:


var InnerText=null;
if(ExampleNode.firstChild!=null){
InnerText
=ExampleNode.firstChild.nodeValue;
}

nodeType • Typen af node.

parentNode • Den overordnede node.

firstChild • Den første underordnede node af denne node.

lastChild • Den sidste underordnede node af denne node.

nextSibling • Den næste node.

previousSibling • Den forrige node.

Liste over detaljerne i alle de 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 • Antallet af attributter i noden.

item • Returnerer en attribut via indeks.

.item(Indeks:Antallet)

getNamedItem • Returnerer en attribut via navn.

.getNamedItem("Navn")

Liste over alle attributterne 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-attribut

name • Navnet på attributten.

value • Værdien af attributten.

YouTube Brug af JavaScript
Denne dokumentation var oversat fra engelsk, ved hjælp af en online oversætter. Vi undskylder hvis du finder nogen fejl. Hvis du vil hjælpe os med at foretage rettelser. Der er en oversættelse editor i Hippani Animator (i Hjælpemenuen). Vi giver ud gratis licensnøgler til nogen, der korrigerer mere end 100 sætninger. Kontakt os for flere detaljer.