Recherche de XML en utilisant l'asp
|
F ou la plupart des organismes basés nets, les données stockées dans leurs bases de données sont leur propriété unique. Comment ces données peuvent être organisées plus efficacement et efficacement en utilisant XML, est le thème de cet article.
|
Quand vous créez une base de données dans le MS Access, même si il est vide, il prend beaucoup de l'espace juste pour la structure. Droite ? Pourquoi perte cet beaucoup d'espace juste pour la structure quand vous pouvez stocker l'information environ au moins cent membres de votre emplacement dans le même espace. Quand vous stockez des données comme XML, il est stocké sous forme de dossier simple des textes avec la prolongation .XML, avec quelques étiquettes. Pour l'instant, je n'entrerai pas dans la théorie détaillée d'expliquer les complexités de XML, mais me concentre plutôt sur la façon dont lui accéder et manoeuvrer employant l'asp.
|
Avant que nous commencions, ce que tout est exigé pour votre web server pour pouvoir servir XML. Pour le côté XML de serveur traitant, IE 5.0+ doit être installé sur le serveur. C'est parce que nous avons besoin de XML DOM (modèle d'objet de document de XML), qui est fondamentalement un analyseur de XML, qui est fourni comme composant d'IE5.
|
Maintenant nous sommes prêts à écrire nos manuscrits. Nous avons besoin de deux choses.
|
- Point d'émission de données
- Manuscrit d'asp pour manoeuvrer les données.
|
D'abord créons un point d'émission de données. Supposer que nous voulons maintenir un dépôt de ressource en lequel nous voulons inclure une courte description de la ressource, son lien sur le Web et son texte de lien. Le point d'émission de données de l'échantillon XML pour ceci peut être :
|
(Contenu de dossier Resource.XML)
|
< ? version= " 1.0 " de xml ? > <Resource_Repository> <Resource>
<text> Ce programme te permet de chiffrer vos codes sources de HTML de sorte que personne ne puissent voler et le copy les collent dans leur propre emplacement. </text> <link> <url> ftp://ftp.cedium.net/internet/htmlcrypt/encryptHTML.exe </url> <linetext> Chiffrage de code source de HTML </linetext> </link> <Size> 736 KBS </Size> </Resource>
<Resource> <text> Le DOS a basé le programme d'Eliza. Eliza est un programme machine qui peut te parler comme un être humain. Se sert de l'intelligence artificielle. </text> <link> <url> http://hps.elte.hu/~gk/Eliza/ELIZA.EXE </url> <linetext> Eliza Chatterbot </linetext> </link> <Size> 36 KBS </Size> </Resource> </Resource_Repository>
|
Maintenant nous écrivons un manuscrit pour accéder à ces données et pour les montrer sur la page Web. Je résulte serai produit dans un format très simple, pour rendre le code d'asp simple pour comprendre.
|
Pour commencer par, nous devons créer un objet de XML DOM sur le serveur. Ceci peut être fait avec une ligne aussi simple que :
|
objXML réglé de <% = Server.CreateObject (« Microsoft.XMLDOM ») %>
|
Maintenant nous devons donner le chemin de notre point d'émission de données. Ajouter ainsi la ligne suivante au code :
|
<% objXML.Load (Server.MapPath (« Resource.xml »))
Si <> 0 d'objXML.parseError.errorCode puis Response.Write « color=red>Error de <p><font chargeant la ressource file.</font></p> » Response.End Finir si
%>
|
Si l'analyseur de XML DOM jette n'importe quelle erreur, alors nous attrapons cela et montrons le message d'erreur.
|
Nous voulons montrer la liste de toutes ressources dans le dossier Resource.xml. Nous savons que les ressources sont incluses dans l'étiquette de <Resource>. Ainsi, la prochaine étape est de créer une liste de tous objets sous le <Resource> d'étiquette.
|
<% Placer l'objLst = l'objXML.getElementsByTagName (la « ressource »)
%>
|
La propriété de longueur de la liste d'objet indique le nombre d'articles dans la liste. Par exemple, dans notre exemple de Resource.xml, il y a deux disques sous l'étiquette de <Resource>. Ainsi, objLst.Length montre la valeur 2, une fois montré.
|
<% Response.write « là sont » et objLst.Length et « ressources sur cet emplacement. »
%>
|
C'est tout à fait intéressant jusqu'à maintenant. Que diriez-vous d'accéder à différents secondaire-articles ? Supposer que nous juste voulons montrer l'URLs de toutes ressources dans notre « base de données », comment pouvons nous faire cela ?
|
Créer un plus d'objet, se rapportant maintenant aux articles à l'intérieur de la liste d'objet. Les secondaire-articles peuvent être accédés en employant des childNodes (index). Voir le ce code pour davantage d'arrangement :
|
<% 'pour chaque ressource dans la liste Pour I = 0 à objLst.Length - 1
Placer le subLst = l'objLst.item (I)
Response.write « <P> » et vbcrlf Href='" de <a de Response.Write « et subLst.childNodes (1) .childNodes (0). Texte et « '> » _ et subLst.childNodes (1) .childNodes (0). Texte et « </a> » Après
%>
|
Un regard soigneux à la structure du document de XML que nous avions créé plus tôt indique que le <URL> est un <Link> intérieur qui est le deuxième élément du <Resource> (d'abord étant <text>). Si nous commençons notre indexation à partir de 0 (zéro), alors le <Link> est le premier élément du <Resource> et le <URL> est l'élément de Zeroeth à l'intérieur du <Link>. C'est pourquoi j'ai écrit la ligne :
|
subLst.childNodes (1) .childNodes (0). Texte
|
ce qui n'est rien mais <URL>. Relire le paragraphe précédent si vous n'êtes toujours pas clair et je suis sûr que vous l'obtiendrez bientôt.
Ainsi, le code source final du dossier d'asp que nous avons créé pour montrer l'URL de toutes ressources dans notre base de données est :
|
<% 'créant un objet de XMLDOM Placer l'objXML = le Server.CreateObject (« Microsoft.XMLDOM »)
'Localisant notre base de données de XML objXML.Load (Server.MapPath (« Resource.xml »))
'vérifiant l'erreur Si <> 0 d'objXML.parseError.errorCode puis Response.Write « color=red>Error de <p><font chargeant la ressource file.</font></p> » Response.End Finissent si
'se rapportant à la ressource Placer l'objLst = l'objXML.getElementsByTagName (la « ressource ») Response.write « là sont » et objLst.Length et « ressources sur cet emplacement. »
'pour chaque ressource Pour I = 0 à objLst.Length - 1
'se référer au secondaire-article Placer le subLst = l'objLst.item (I)
'montrer l'URL Href='" de <a de Response.Write « et subLst.childNodes (1) .childNodes (0). Texte et « '> » _ et subLst.childNodes (1) .childNodes (0). Texte et « </a> » Après
%>
|
Naturellement, vous devriez ajouter tout ceux des étiquettes de HTML de formatage pour rendre cette liste plus attrayante. Mais le noyau demeure le même.
|
Conclusion :
|
En cet article, nous avons appris comment rechercher « enregistre » de XML « base de données ». Pour la base de données complète des opérations reliées, nous devons savoir insérer, mettre à jour et supprimer les disques des manuscrits. Dans le prochain article, nous verrons comment effectuer ces opérations aussi bien.
|