XML
Hippani Animator tem a capacidade de carregar dados XML e usá-lo para criar orientado a páginas da web de dados. XML só pode ser carregado a partir de um servidor web ou localhost. Se você tentar carregar qualquer XML em seu disco rígido, o objeto XML pode ter status igual a 0. Alguns navegadores como o Internet Explorer não permitir o acesso direto ao disco rígido ou atravessar o domínio XML.
XML pode ser adicionado à biblioteca ou carregado a partir de uma URL. Se você precisar carregar XML de outro domínio do que o que o HTML exportado é hospedado em, o XML deve ser Redirecionado de uma página do servidor local ou incluir o cabeçalho Access-Control-Allow-Origin: *.
Tenha cuidado ao analisar o objeto XML. Navegadores da web diferentes manipular XML de diferentes maneiras. Alguns navegadores incluem espaço vazio como nós de texto, alguns não. Alguns navegadores permitem domínio cruzado XML, alguns não. Tente listar os detalhes de nó em diferentes navegadores para ver a diferença.
Um exemplo básico de como carregar um documento XML chamado XMLFile1 da biblioteca.
OpenXML("XMLFile1",Result);
function Result(XML){
if(XML.status==200){
alert(XML.documentElement.nodeName);
}else{
alert("Error Code "+XML.status);
}
}
Exemplo de XML
Este exemplo mostra como ler uma lista de frutas de um arquivo XML em uma matriz.
<?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!!!");
}
}
Envio de XML
As funções XML podem ser usadas para enviar dados para um servidor web. Enquanto o servidor web responde com XML válido. O URL deve também ser válido, personagens tal um espaços e Pontuação devem ser convertidos para códigos de URL por exemplo, o espaço é 20%.
Este exemplo mostra como você pode enviar uma mensagem e esperar voltar alguns XML simples <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!!!");
}
}
Redirecionando o XML
Se você precisar carregar XML de outro domínio, do que um filme exportado é hospedado no, o XML deve ser Redirecionado de uma página de servidor local ou incluir o cabeçalho Access-Control-Allow-Origin: *. Este é um exemplo de um ASP.NET página que poderia ser usada para redirecionar o nosso RSS feed, assim que parece que a alimentação é proveniente do mesmo servidor como o HTML. Nós também adicionamos o cabeçalho para mostrar como que poderia ser alcançado. Outras páginas de servidor podem ser usadas como 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
Open XML
• Abra um arquivo XML em um objeto XML. Esta função é executada em segundo plano e requer o nome de um arquivo XML na biblioteca e uma função que o objeto XML é enviado para quando ele é carregado.
OpenXML("Nome",Resposta:Função);
|
Url do Open XML
• Abra um arquivo XML em um objeto XML de um URL. Esta função funciona no fundo e exige uma URL e uma função que o objeto XML é enviado para quando ele é carregado.
OpenXMLUrl("http://",Resposta:Função);
|
Url do método Open XML
• Abra um arquivo XML em um objeto XML de um URL. Esta função funciona no fundo e exige uma URL e uma função que o objeto XML é enviado para quando ele é carregado. O método HTTP pode ser GET, POST, HEAD, OPTIONS, PUT, DELETE, TRACE. Alguns métodos, tais como POST, permitir uma seqüência de caracteres de dados a ser enviado.
OpenXMLMethodUrl("http://","GET",null,Resposta:Função);
|
OpenXMLMethodUrl("http://www.MySite.com/XML.php","POST","Name=Fruit&Value=Apple",Result);
function Result(XML){
}
Objeto XML
documentElement
• O nó raiz do documento XML.
|
status
• O status do documento XML. 0 - O objeto XML falhou. XML não pode ser suportado por este navegador, a página pode estar em outro domínio ou não em um servidor web. 1 - A URL é inválida. 2 - O XML é inválido. 200 - Sucesso. 400 a 499 - a solicitação falhou. O arquivo pode não existir ou o acesso pode ser negado. 500 a 599 - falha de resposta. O servidor não conseguiu retornar o documento XML, pode haver um erro no servidor web.
|
Nó XML
attributes
• Retorna os atributos do nó. por exemplo, <Node attribute1="Value1" attribute2="Value2" />"
|
nodeName
• O nome do nó. Um nó de texto chamado #Text.
|
nodeValue
• O valor do nó. Para um nó de texto, o valor é o texto.
|
Para obter o texto dentro de um nó:
var InnerText=null;
if(ExampleNode.firstChild!=null){
InnerText=ExampleNode.firstChild.nodeValue;
}
firstChild
• O primeiro nó filho deste nó.
|
lastChild
• O último nó filho deste nó.
|
nextSibling
• O próximo nó.
|
previousSibling
• O nó anterior.
|
Liste os detalhes de todos os nós filho de um nó:
var Node=ExampleNode.firstChild;
var List="";
while(Node!=null){
List+=Node.nodeName+" "+Node.nodeType+" "+Node.nodeValue+"\r\n";
Node=Node.nextSibling;
}
alert(List);
Atributos XML
length
• O número de atributos no nó.
|
item
• Retorna um atributo por índice.
.item(Índice:Número)
|
getNamedItem
• Retorna um atributo por nome.
.getNamedItem("Nome")
|
Liste todos os atributos de um nó:
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);
Atributo XML
name
• O nome do atributo.
|
value
• O valor do atributo.
|
Esta documentação foi traduzida do inglês, usando um tradutor online. Pedimos desculpas se você encontrar quaisquer erros. Se você gostaria de nos ajudar a fazer as correções. Há um editor de tradução em Hippani Animator (no menu ajuda). Damos as chaves de licença livre para qualquer um que corrige mais de 100 frases. Entre em contato conosco para mais detalhes.