Capítulo 5: Análise de instância XML
contorno:
1: Exemplo de efeito
Dois: Análise de Exemplo 1. Defina um novo logotipo.
2. Crie um documento XML.
3. Crie o arquivo HTML correspondente.
XML é amplamente utilizado em diferentes campos, como MathML na área de tecnologia, WML em aplicações de comunicação sem fio, SVG em imagens de rede, etc. A aplicação de XML na web tira vantagem principalmente de seus poderosos recursos de manipulação de dados. Geralmente usando XML com programas do lado do servidor, como JavaScript e ASP, quase todas as necessidades de aplicativos na rede podem ser atendidas.
Considerando a conveniência da explicação, apresentamos abaixo um exemplo simples, que não inclui o programa do lado do servidor. O objetivo é fornecer uma compreensão perceptiva dos recursos de manipulação de dados do XML.
Ok, vamos primeiro [clicar aqui] para ver o efeito do exemplo. (Por favor, use o navegador IE5.0 ou superior para abrir)
Esta é uma função simples de recuperação de dados de registros de CD. Você pode ver as informações relevantes de um único CD clicando em “Anterior” e “Avançar”. Originalmente, usamos dois métodos para obter esse efeito:
1. Use DHTML para ocultar dados em diferentes camadas e exibi-los sequencialmente por meio de eventos de mouse;
2. Use programas em segundo plano (como ASP, CGI, PHP, JSP, etc.) para chamar dados do lado do servidor.
Mas neste exemplo, ao abrirmos o código original da página, podemos ver que não há DIV DHTML ou ação de formulário. Ele é totalmente implementado em XML. Vamos analisar seu processo de produção a seguir:
Etapa um: Definir uma nova identidade.
De acordo com os dados reais do CD, primeiro crie uma nova identificação chamada <CD>; em segundo lugar, estabeleça a identificação dos dados relacionados, que são: nome do CD <Título>, cantor <Artista>, ano de publicação <Ano>, país <País> , a empresa emissora <Empresa> e o preço <Preço> por fim, deverá ser criada uma logomarca denominada catálogo <CATALOG>; Por que criar outra tag <CATALOG>? Como está estipulado no documento XML que deve e pode haver apenas um elemento raiz (identidade), temos vários dados de CD, e esses dados estão em um relacionamento paralelo, portanto, precisamos criar um elemento raiz para esses elementos paralelos.
As definições e relacionamentos dos elementos acima são totalmente compatíveis com os padrões XML e não requerem a definição de um arquivo DTD especial, portanto, a definição do DTD pode ser omitida. Se quisermos usar DTD para definir, o processo acima pode ser expresso como:
<!CATALOGO DE ELEMENTOS (CD)*>
<!ELEMENT CD (Título, Artista, Ano, País, Empresa, Preço)>
<!Título do ELEMENTO (#PCDATA)>
<!ELEMENT Artista (#PCDATA)>
<!ELEMENT Ano (#PCDATA)>
<!ELEMENT País (#PCDATA)>
<!ELEMENT Empresa (#PCDATA)>
<!Preço do ELEMENTO (#PCDATA)>
Este código indica que o elemento CATALOG contém vários subelementos CD, e o subelemento CD por sua vez contém seis subelementos: Título, Artista, Ano, País, Empresa, Preço, e seus conteúdos são definidos como texto (caracteres, números, texto). (Observação: para obter instruções de sintaxe específicas, consulte a introdução ao DTD no capítulo anterior)
Etapa 2: Crie o documento XML.
<?xml versão="1.0"?>
<CATÁLOGO>
<CD>
<TITLE>Império Burlesco</TITLE>
<ARTIST>Bob Dylan</ARTIST>
<COUNTRY>EUA</COUNTRY>
<COMPANY>Colômbia</COMPANY>
<PRICE>10,90</PRICE>
<ANO>1985</ANO>
</CD>
<CD>
<TITLE>Esconda seu coração</TITLE>
<ARTIST>Bonnie Tylor</ARTIST>
<COUNTRY>Reino Unido</COUNTRY>
<EMPRESA>Registros CBS</COMPANY>
<PRICE>9,90</PRICE>
<ANO>1988</ANO>
</CD>
<CD>
<TITLE>Maiores sucessos</TITLE>
<ARTIST>Dolly Parton</ARTIST>
<COUNTRY>EUA</COUNTRY>
<EMPRESA>RCA</COMPANY>
<PRICE>9,90</PRICE>
<ANO>1982</ANO>
</CD>
<CD>
<TITLE>Ainda estou triste</TITLE>
<ARTIST>Gary Mais</ARTIST>
<COUNTRY>Reino Unido</COUNTRY>
<COMPANY>Redords virgens</COMPANY>
<PRICE>10,20</PRICE>
<ANO>1990</ANO>
</CD>
<CD>
<TITLE>Eros</TITLE>
<ARTIST>Eros Ramazzotti</ARTIST>
<PAÍS>UE</COUNTRY>
<EMPRESA>BMG</COMPANY>
<PRICE>9,90</PRICE>
<ANO>1997</ANO>
</CD>
</CATALOG>
O código acima usa primeiro a instrução de declaração <?xml version="1.0"?> para indicar que este é um documento XML e seu formato está em conformidade com a especificação padrão XML 1.0. Depois tem o conteúdo do documento, a estrutura em árvore é muito clara:
<CATÁLOGO>
<CD>
...
</CD>
<CD>
...
</CD>
</CATALOG>
Um total de 5 conjuntos de dados são definidos. Salvamos o código acima como um arquivo cd.xml para chamada.
Etapa 3: Crie o arquivo HTML correspondente.
1. Importe dados XML.
Sabemos que entre os navegadores populares atualmente, apenas os navegadores IE5.0 e superiores da Microsoft suportam XML. O IE suporta a inserção de XML por meio do objeto objeto em HTML e importa dados por meio do método XMLDocument.load() de js. Vejamos o código: <object WIDTH="0" HEIGHT="0"
CLASSID="clsid:550dda30-0541-11d2-9ca9-0060b0ec3d39" ID="xmldso">
</objeto>
Defina um objeto com o nome de ID xmldso. Em seguida, use js para introduzir dados xml na área principal:
<script for="window" event="onload">
xmldso.XMLDocument.load("cd.xml");
</script>
2. Agrupar dados.
A tag <SPAN> será então usada para vincular os dados XML na tabela. Entre eles, ID, DATASRC e DTATFLD são todos atributos de <SPAN>. O código é o seguinte:
<tabela>
<tr><td>Título:</td><td><SPAN ID="title" DATASRC=#xmldso DATAFLD="TITLE"></SPAN></td></tr>
<tr><td>Artista:</td><td><SPAN ID="artist" DATASRC=#xmldso DATAFLD="ARTIST"></SPAN></td></tr>
<tr><td>Ano:</td><td><SPAN ID="year" DATASRC=#xmldso DATAFLD="YEAR"></SPAN></td></tr>
<tr><td>País:</td><td><SPAN ID="country" DATASRC=#xmldso DATAFLD="COUNTRY"></SPAN></td></tr>
<tr><td>Empresa:</td><td><SPAN ID="empresa" DATASRC=#xmldso DATAFLD="COMPANY"></SPAN></td></tr>
<tr><td>Preço:</td><td><SPAN ID="price" DATASRC=#xmldso DATAFLD="PRICE"></SPAN></td></tr>
</tabela>
3. Operação de ação.
Por fim, forneça botões de navegação para os dados:
<INPUT TYPE=button VALUE="CD anterior" ONCLICK="moveprevious()">
<INPUT TYPE=botão VALUE="Próximo CD" ONCLICK="movenext()">
E use js para completar duas funções de clique do mouse: movenext() e moveprevious(). Adicione o seguinte código à área principal:
<linguagem script="JavaScript">
função moverpróximo()
{
if (xmldso.recordset.absoluteposition <xmldso.recordset.recordcount)
{
xmldso.recordset.movenext();
}
}
função moveranterior()
{
if (xmldso.recordset.absoluteposition > 1)
{
xmldso.recordset.moveprevious();
}
}
</script>
Ok, vamos primeiro dar uma olhada em todo o código original do arquivo HTML:
<html>
<cabeça>
<script for="window" event="onload">
xmldso.XMLDocument.load("cd.xml");
</script>
<linguagem script="JavaScript">
função moverpróximo()
{
if (xmldso.recordset.absoluteposition <xmldso.recordset.recordcount)
{
xmldso.recordset.movenext();
}
}
função moveranterior()
{
if (xmldso.recordset.absoluteposition > 1)
{
xmldso.recordset.moveprevious();
}
}
</script>
<TITLE>Navegar pelo CD</TITLE>
</head>
<corpo>
<p>
<objeto WIDTH="0" ALTURA="0"
CLASSID="clsid:550dda30-0541-11d2-9ca9-0060b0ec3d39" ID="xmldso">
</objeto>
<tabela>
<tr><td>Título:</td><td><SPAN ID="title" DATASRC=#xmldso DATAFLD="TITLE"></SPAN></td></tr>
<tr><td>Artista:</td><td><SPAN ID="artist" DATASRC=#xmldso DATAFLD="ARTIST"></SPAN></td></tr>
<tr><td>Ano:</td><td><SPAN ID="year" DATASRC=#xmldso DATAFLD="YEAR"></SPAN></td></tr>
<tr><td>País:</td><td><SPAN ID="country" DATASRC=#xmldso DATAFLD="COUNTRY"></SPAN></td></tr>
<tr><td>Empresa:</td><td><SPAN ID="empresa" DATASRC=#xmldso DATAFLD="COMPANY"></SPAN></td></tr>
<tr><td>Preço:</td><td><SPAN ID="price" DATASRC=#xmldso DATAFLD="PRICE"></SPAN></td></tr>
</tabela>
<p>
<INPUT TYPE=button VALUE="CD anterior" ONCLICK="moveprevious()">
<INPUT TYPE=botão VALUE="Próximo CD" ONCLICK="movenext()">
</p>
</body>
</html>
Salve o código acima como um arquivo cd.htm e junte-o ao arquivo cd.xml na segunda etapa. Abra o arquivo cd.htm e você verá o mesmo efeito do exemplo acima.
Ok, até agora aprendemos muito sobre XML. Vamos resumir os cinco capítulos anteriores, que são introdução rápida ao XML, princípios conceituais do XML, terminologia XML, sintaxe XML e análise de exemplo deste capítulo. Aqui termina a parte do tutorial. Durante o processo de escrita, Ajie fez o possível para explicar os conceitos XML relevantes de uma maneira fácil de entender e fez o possível para contar a todos o que entendia. No entanto, como não estudo XML há muito tempo, minha compreensão do assunto. toda a tecnologia XML não é sistemática e aprofundada o suficiente, por isso é inevitável que haja algumas omissões. Por favor, corrija-me e perdoe-me.