Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Langages serveur > ASP
ASP Forum sur la programmation ASP. Avant de poster : Cours ASP, FAQ ASP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/11/2007, 14h21   #1
Nouveau Membre du Club
 
Inscription : janvier 2006
Messages : 49
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 49
Points : 39
Points : 39
Envoyer un message via MSN à GoN49
Par défaut Pb xml avec xmldom

Bonjour ,

Voila j'ai un petit probleme , je recupere un flux xml , et j'aimerais complété ce flux xml avec d'autre noeud. Le probleme est que a chaque fois que j'essaie d'inserer une info il me dis que "cet objet ne gere pas cette propriete ou cette méthode"




Le debut du code pour montrer les objet que j'utilise (petite precision toute
les variable on bien été declaré avant)
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
set XmlInjection = Server.CreateObject("Msxml2.DOMDocument.4.0")
 
    XmlInjection.async = false
 
    XmlInjection.loadXML sXML
 
    NbPartenaire=Ubound(aRes,2)+1
 
    NbDate=XmlInjection.selectNodes("/root/date").length
 
    Response.Write "Nombre partenaire : "&NbPartenaire
 
    Response.Write "Nombre node date : "&NbDate
 
 
 
    'Pour chaque noeud pere date
 
    For iDate=1 to NbDate

C'est en dessous que ca plante


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 
        'Pour chaque partenaire contenu dans le noeud pere
 
        For iPartenaire=1 to NbPartenaire
 
 
 
            id_partner=XmlInjection.selectSingleNode("/root/date["&iDate&"]/partener["&iPartenaire&"]/@id_partner").text
 
            NodePere=XmlInjection.selectSingleNode("/root/date["&iDate&"]").createElement("nombre") 
 
 
 
            'On verifie que tout les partenaire sont a leur place , si il ne sont pas a leurs place
 
            'cela veut dire qu'il avait 0 click , on injecte donc dans le xml une ligne avec 0 click
 
            if id_partner <> iPartenaire then
 
                'injection du xml
 
                NodePere.createElement("partener")
 
                NodePere.setAttribute "id_partner",aRes(i,0)
 
                NodePere.setAttribute "bname",aRes(i,1)
 
                NodePere.setAttribute "nbclick",0     
 
            end if
 
 
 
        Next
 
 
 
    Next


Si ca peut vous aidé voici le flux xml que je recoit :


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
<date date_log="02/11/2007">
  <partener id_partner="2" bname="Allemagne" nbclick="1" />
</date>
 
<date date_log="05/11/2007">
 
  <partener id_partner="1" bname="Europe" nbclick="1" />
  <partener id_partner="3" bname="France" nbclick="1" />
 
</date>
 
<date date_log="06/11/2007">
  <partener id_partner="2" bname="Allemagne" nbclick="1" />
 
</date>

Voici le flux xml que je voudrais (avec les node xml injecté)

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
<date date_log="02/11/2007">
 
  <partener id_partner="2" bname="Allemagne" nbclick="1" />
  <partener id_partner="1" bname="Europe" nbclick="0" />
  <partener id_partner="3" bname="France" nbclick="0" />
 
 
</date>
 
<date date_log="05/11/2007">
 
  <partener id_partner="1" bname="Europe" nbclick="1" />
  <partener id_partner="3" bname="France" nbclick="0" />
  <partener id_partner="2" bname="Allemagne" nbclick="1" />
 
</date>
 
<date date_log="06/11/2007">
  <partener id_partner="2" bname="Allemagne" nbclick="1" />
  <partener id_partner="1" bname="Europe" nbclick="0" />
  <partener id_partner="3" bname="France" nbclick="0" />
 
</date>
Voila donc si vous avez une idée , n'hésitez pas

Merci d'avance
GoN49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2007, 20h16   #2
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 859
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 859
Points : 5 977
Points : 5 977
Salut,

Si tu veux utiliser "Msxml2.DOMDocument.4.0" pour générer un XML il faut utiliser les methodes de l'objet. Response.Write n'en est pas une.
Voici un bout de code qui peut t'inspirer. Ce code génere un fichier XML à partir d'un recordset.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
Function ConvertRStoXML(objRS, strTopLevelNodeName, strRowNodeName)
	on error resume next
 
	Dim objDom
	Dim objRoot
	Dim objField
	Dim objFieldValue
	Dim objcolName
	Dim objattTabOrder
	Dim objPI
	Dim x
	Dim objRSField
	Dim objRow
	Dim filename
 
	objRS.movefirst
 
	'Instantiate the Microsoft XMLDOM.
	Set objDom = server.CreateObject("Microsoft.XMLDOM")
	objDom.preserveWhiteSpace = True
 
	'Create your root element and append it to the XML document.
	Set objRoot = objDom.createElement(strTopLevelNodeName)
	objDom.appendChild objRoot
 
	Do While Not objRS.EOF
		Set objRow = objDom.CreateElement(strRowNodeName)
 
		For Each objRSField in objRS.Fields
			Set objField = objDom.createElement(objRSField.Name)
			objField.Text = objRSField.Value
 
			objField.appendChild objFieldValue
 
			objRow.appendChild objField
		Next 
 
		objRoot.appendChild objRow
 
		objRS.MoveNext
	Loop
 
	Set objPI = objDom.createProcessingInstruction("xml", "version='1.0' encoding='iso-8859-1'")
	objDom.insertBefore objPI, objDom.childNodes(0)
 
	filename = strTopLevelNodeName & strRowNodeName & ".xml"
 
	objDom.Save folderpath() & filename
	ConvertRStoXML = filename
 
	'Clean up...
	Set filename = nothing
	Set objDom = Nothing
	Set objRoot = Nothing
	Set objField = Nothing
	Set objFieldValue = Nothing
	Set objcolName = Nothing
	Set objattTabOrder = Nothing
	Set objPI = Nothing
End Function
Par contre, on peut tout à fait générer un fichier XML en n'utilisant que des response.write. Par contre, c'est peut être plus difficile pour naviguer ou ajouter des données dedans.

A+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h25.


 
 
 
 
Partenaires

Hébergement Web