cs_Jackboy
Messages postés757Date d'inscriptionvendredi 7 septembre 2001StatutMembreDernière intervention19 juin 2008
-
15 janv. 2007 à 15:09
cs_Nurgle
Messages postés1642Date d'inscriptionsamedi 6 novembre 2004StatutMembreDernière intervention28 avril 2011
-
15 janv. 2007 à 19:06
Bonjour !
J'ai un fichier xml donc je récupère et j'affiche les nodes. Pour le moment j'afficher tous les node et sous node, mais j'aimerai pourvoir détecter le parent du node, car j'ai des droits d'accès sur les liens, donc je décide si un user a droit ou non de voir un lien, je ne veux donc pas afficher les enfant du lien. Comme dans mon exemple si bas, valid a 1 indique que je peux voir le lien, mais comme le lien 3 je ne peux pas (-1) je ne veux pas faire afficher le lien 3.1 etc. meme s'il sont à 1, car le noeud parent est non valid.
ex.:
<sitemap>
Voici le script que j'ai fait pour le moment... Merci de votre coup de pouce !!!
<%
qResultat = request.querystring("resultat")
if qResultat = "" then
qResultat = -1
end if
strFileXml = Server.MapPath("test.xml")
Set objXML = Server.CreateObject("MSXML2.DOMDocument")
objXML.load(strFileXml)
Set objItem = objXML.documentElement.selectSingleNode("item")
set objXML = nothing
Set objItemChild = objItem.getElementsByTagName("item")
set objItem = nothing
Dim intobjItemChild
intobjItemChild = objItemChild.length
Dim Nom, Url, Id
Dim EndNode
EndNode = 0
For i=0 To objItemChild.length -1
set node_noeud = objItemChild.item(i)
if node_noeud.attributes.item(2).nodeValue <> "-1" then
if node_noeud.attributes.item(4).nodeValue <> qResultat and EndNode > -1 then
Response.Write("<td> " & node_noeud.attributes.item(3).nodeValue & "")
if (objItemChild.length -1) = i then
else
response.write " ></td>"
end if
else
if EndNode > -1 then
Response.Write("<td> " & node_noeud.attributes.item(3).nodeValue & "")
EndNode = -1
end if
end if
end if
cs_Nurgle
Messages postés1642Date d'inscriptionsamedi 6 novembre 2004StatutMembreDernière intervention28 avril 20114 15 janv. 2007 à 19:06
Salut,
C'est pour ce genre de traitement que les fonctions récursives sont utiles.
Tu devrais créer une fonction AfficherNode qui prend en paramètre un node, et dedans tu fais :
1. Tu test si le lien correspondant à ce node doit être visible. Si oui, tu passes au 2, si non, Exit Sub.
2. Tu affiches le HTML du lien.
3. Tu fais une boucle sur tonNode.getElementByTagName("item").
4. Dans cette boucle tu rappelles ta propre fonction AfficherNode en passant le sous-item.
Ainsi, si un élément parent n'est pas visible, la fonction ne sera jamais appellée pour les sous-items et donc ils ne seront jamais affichés.
Après, dans ton code tu as juste à faire AfficherNode(objItem) et c'est tout.