PB à toute heure et à tout moment. (à parcourir avec modération)

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.
  • Index
  •  » Powerscripts
  •  » [RESOLU] Ajouter des balises HTML dans un fichier XML

#1 21-10-2011 13:11:02

wazou1812  
Modératrice
Award: bf
Date d'inscription: 24-05-2006
Messages: 610
Pépites: 2,097
Banque: 3,536,631,712,504

[RESOLU] Ajouter des balises HTML dans un fichier XML

Bonjour,

Après avoir réussi à générer un fichier XML avec PB et PBDOM, je dois ajouter le code ci dessous au début du fichier avant le Process Instruction du fichier, afin de pouvoir sauvegardé le fichier au format html et l'envoyer automatiquement avec un explorateur

Code:

<html>
<body onload="document.getElementById('shipForm').submit();">
<form  enctype='multipart/form-data' action='https://service.ariba.com/service/transaction/cxml.asp' method='POST' ID='shipForm'>
<input type='hidden' name='cXML-urlencoded' value='<

et par conséquent, ajouter le code suivant à la fin du fichier

Code:

'>
</form>
</body>
</html>

Le fichier XML est généré via pbdom avec les instructions

Code: pb

i_PBDOM_DOCUMENT.NewDocument ("", "", "cXML", "",  as_nom_dtd)


et le process instruction est ajouté aussi avec pbdom

Code: pb

pbdom_PI = create PBDOM_ProcessingInstruction
pbdom_PI.setname("xml")
pbdom_PI.setvalue("version", "1.0")
//pbdom_PI.setvalue("encoding", "utf-16le")  
pbdom_PI.setvalue("encoding", "utf-8")  
i_PBDOM_DOCUMENT_SHIP.addcontent(pbdom_PI)

La question est donc : quelle est la meilleure solution pour ajouter le début et la fin du fichier, avec pbdom ? ou avec filopen...... ou une autre solution ?

Merci d'avance,

Hors ligne

 

#2 21-10-2011 13:49:28

seki  
0x73656B69
Award: bf
Lieu: Vittoncourt & Luxembourg
Date d'inscription: 20-11-2008
Messages: 1121
Pépites: 4,296,080,220
Banque: 9,223,372,036,854,775,808
Site web

Re: [RESOLU] Ajouter des balises HTML dans un fichier XML

wazou1812 a écrit:

Bonjour,

[...]

La question est donc : quelle est la meilleure solution pour ajouter le début et la fin du fichier, avec pbdom ? ou avec filopen...... ou une autre solution ?

Merci d'avance,

Salut, une méthode alternative : ne pas créer de fichier, utiliser Interner Explorer par OLE, générer un document html en mémoire directement dans le composant IE et envoyer le tout ? Un peu comme dans la méthode N°4 décrite sur cette page de Real's Howto ? Il faut juste remplacer le contenu du document fabriqué à coup de WriteLn par le contenu de ton propre document (et je crois qu'il y a un bug dans l'exemple, le form ne s'appelle pas myform)


The best programs are the ones written when the programmer is supposed to be working on something else. - Melinda Varian

Mes réponses PB sur StackOverflow
http://stackoverflow.com/users/flair/317266.png

Hors ligne

 

#3 21-10-2011 14:11:01

xlat  
0xc0000005
Award: bf
Lieu: Tanger (طنج)
Date d'inscription: 04-12-2010
Messages: 725
Pépites: 11,358
Banque: 100,221,387,868,884,304
Site web

Re: [RESOLU] Ajouter des balises HTML dans un fichier XML

bonjour,

tu peux utiliser l'objet Inet avec PostURL ?


https://lut.im/eJINqa9o/vAtyxD0h "Don't believe everything you read on the Internet"
    -- Abraham Lincoln

www.ngs.ma

Hors ligne

 

#4 21-10-2011 14:37:18

wazou1812  
Modératrice
Award: bf
Date d'inscription: 24-05-2006
Messages: 610
Pépites: 2,097
Banque: 3,536,631,712,504

Re: [RESOLU] Ajouter des balises HTML dans un fichier XML

xlat a écrit:

bonjour,

tu peux utiliser l'objet Inet avec PostURL ?

Bonjour,

La méthode Post ne fonctionne pas avec du https ?

Hors ligne

 

#5 21-10-2011 14:46:08

wazou1812  
Modératrice
Award: bf
Date d'inscription: 24-05-2006
Messages: 610
Pépites: 2,097
Banque: 3,536,631,712,504

Re: [RESOLU] Ajouter des balises HTML dans un fichier XML

seki a écrit:

wazou1812 a écrit:

Bonjour,

[...]

La question est donc : quelle est la meilleure solution pour ajouter le début et la fin du fichier, avec pbdom ? ou avec filopen...... ou une autre solution ?

Merci d'avance,

Salut, une méthode alternative : ne pas créer de fichier, utiliser Interner Explorer par OLE, générer un document html en mémoire directement dans le composant IE et envoyer le tout ? Un peu comme dans la méthode N°4 décrite sur cette page de Real's Howto ? Il faut juste remplacer le contenu du document fabriqué à coup de WriteLn par le contenu de ton propre document (et je crois qu'il y a un bug dans l'exemple, le form ne s'appelle pas myform)

Cette solution me conviendrait, d'autant plus que je comptait l'envoyer avec l'OLE, mais le fichier xml est assez complexe, il a été généré auparavant (cf http://pbadonf.fr/forum/viewtopic.php?id=3312 ) , et je ne peux pas tout refaire ?

Merci de votre retour ?

Hors ligne

 

#6 21-10-2011 15:03:17

xlat  
0xc0000005
Award: bf
Lieu: Tanger (طنج)
Date d'inscription: 04-12-2010
Messages: 725
Pépites: 11,358
Banque: 100,221,387,868,884,304
Site web

Re: [RESOLU] Ajouter des balises HTML dans un fichier XML

wazou1812 a écrit:

Bonjour,

La méthode Post ne fonctionne pas avec du https ?

effectivement, dans la doc je viens de lire :

pb115help a écrit:

Return value
   ...
  -5  Unsupported secure (HTTPS) connection attempted


https://lut.im/eJINqa9o/vAtyxD0h "Don't believe everything you read on the Internet"
    -- Abraham Lincoln

www.ngs.ma

Hors ligne

 

#7 21-10-2011 15:29:59

seki  
0x73656B69
Award: bf
Lieu: Vittoncourt & Luxembourg
Date d'inscription: 20-11-2008
Messages: 1121
Pépites: 4,296,080,220
Banque: 9,223,372,036,854,775,808
Site web

Re: [RESOLU] Ajouter des balises HTML dans un fichier XML

wazou1812 a écrit:

seki a écrit:

Il faut juste remplacer le contenu du document fabriqué à coup de WriteLn par le contenu de ton propre document (et je crois qu'il y a un bug dans l'exemple, le form ne s'appelle pas myform)

Cette solution me conviendrait, d'autant plus que je comptait l'envoyer avec l'OLE, mais le fichier xml est assez complexe, il a été généré auparavant (cf http://pbadonf.fr/forum/viewtopic.php?id=3312 ) , et je ne peux pas tout refaire ?

Merci de votre retour ?

Pas sûr de comprendre...

Il n'y a pas trop de modifications à apporter : dans le code pbdom qui te sert à fabriquer le document cxml, à la fin au lieu de sauver dans un fichier j'utiliserais la méthode SaveDocumentIntoString( ) du PBDOM_DOCUMENT pour obtenir le code xml du document, puis je l'insérerais dans la value du champ caché du formulaire.

En gros dans l'exemple 4 du Real's Howto, tu vires le <input type="file"> et tu le remplaces par le <input type="hidden"> avec le code xml donné par SaveDocumentIntoString() en contenu de l'attribut "value".


The best programs are the ones written when the programmer is supposed to be working on something else. - Melinda Varian

Mes réponses PB sur StackOverflow
http://stackoverflow.com/users/flair/317266.png

Hors ligne

 

#8 21-10-2011 16:50:46

wazou1812  
Modératrice
Award: bf
Date d'inscription: 24-05-2006
Messages: 610
Pépites: 2,097
Banque: 3,536,631,712,504

Re: [RESOLU] Ajouter des balises HTML dans un fichier XML

seki a écrit:

wazou1812 a écrit:

Bonjour,

[...]

La question est donc : quelle est la meilleure solution pour ajouter le début et la fin du fichier, avec pbdom ? ou avec filopen...... ou une autre solution ?

Merci d'avance,

Salut, une méthode alternative : ne pas créer de fichier, utiliser Interner Explorer par OLE, générer un document html en mémoire directement dans le composant IE et envoyer le tout ? Un peu comme dans la méthode N°4 décrite sur cette page de Real's Howto ? Il faut juste remplacer le contenu du document fabriqué à coup de WriteLn par le contenu de ton propre document (et je crois qu'il y a un bug dans l'exemple, le form ne s'appelle pas myform)

Ha Ok, donc j'ai utilisé la méthode 4 qui me convient très bien, en adaptant le début avec mes besoins, mais pour envoyer le fichier, je dois l'envoyer avec un browser OLE ? ou il y a une commande avec l'OLE d'internet explorer utilisé dans l'exemple 4 ?

Merci d'avance,

Hors ligne

 

#9 21-10-2011 17:21:55

seki  
0x73656B69
Award: bf
Lieu: Vittoncourt & Luxembourg
Date d'inscription: 20-11-2008
Messages: 1121
Pépites: 4,296,080,220
Banque: 9,223,372,036,854,775,808
Site web

Re: [RESOLU] Ajouter des balises HTML dans un fichier XML

wazou1812 a écrit:

donc j'ai utilisé la méthode 4 qui me convient très bien, en adaptant le début avec mes besoins, mais pour envoyer le fichier, je dois l'envoyer avec un browser OLE ? ou il y a une commande avec l'OLE d'internet explorer utilisé dans l'exemple 4 ?

Merci d'avance,

Ça ne part tout seul avec la méthode go() dans la partie javascript du document (méfies toi dans l'exemple il me semble qu'il y a un bug sur le nommage du form : un coup c'est "document.myform" et ailleurs c'est "<FORM name='form'" ?

Sinon, tu peux aussi essayer d'ignorer la partie javascript et de piloter l'envoi en passant par IE.document.Forms("shipForm").Submit() si tu appelles toujours le formulaire shipForm.


The best programs are the ones written when the programmer is supposed to be working on something else. - Melinda Varian

Mes réponses PB sur StackOverflow
http://stackoverflow.com/users/flair/317266.png

Hors ligne

 

#10 21-10-2011 18:14:57

wazou1812  
Modératrice
Award: bf
Date d'inscription: 24-05-2006
Messages: 610
Pépites: 2,097
Banque: 3,536,631,712,504

Re: [RESOLU] Ajouter des balises HTML dans un fichier XML

seki a écrit:

wazou1812 a écrit:

donc j'ai utilisé la méthode 4 qui me convient très bien, en adaptant le début avec mes besoins, mais pour envoyer le fichier, je dois l'envoyer avec un browser OLE ? ou il y a une commande avec l'OLE d'internet explorer utilisé dans l'exemple 4 ?

Merci d'avance,

Ça ne part tout seul avec la méthode go() dans la partie javascript du document (méfies toi dans l'exemple il me semble qu'il y a un bug sur le nommage du form : un coup c'est "document.myform" et ailleurs c'est "<FORM name='form'" ?

Sinon, tu peux aussi essayer d'ignorer la partie javascript et de piloter l'envoi en passant par IE.document.Forms("shipForm").Submit() si tu appelles toujours le formulaire shipForm.

Bonjour,

Je ne suis pas une grande spécialiste du javascript, j'ai donc fait cela

Code: pb

IE.document.Open
IE.document.WriteLn("<HTML>")
IE.document.WriteLn("<BODY>")
IE.document.WriteLn("<form  name='shipForm' enctype='multipart/form-data' action='https://service.ariba.com/service/transaction/cxml.asp' method='POST' ID='shipForm'>")
IE.document.WriteLn("<input type='hidden' name='cXML-urlencoded' value='")
IE.document.WriteLn(i_PBDOM_DOCUMENT_SHIP.SaveDocumentIntoString())
IE.document.WriteLn("'></FORM>")
IE.document.WriteLn("</BODY>")
IE.document.WriteLn("</HTML>")
IE.document.Close

IE.document.Forms("shipForm").Submit()


Pour avoir l'équivalence de

Code:

<html>
<body onload="document.getElementById('shipForm').submit();">
<form  enctype='multipart/form-data' action='https://service.ariba.com/service/transaction/cxml.asp' method='POST' ID='shipForm'>
<input type='hidden' name='cXML-urlencoded' value='<?xml version="1.0" encoding="utf-8"?>

L'instruction submit envoi bien quelque chose, la fenêtre d'internet explorer s'ouvre bien, le fichier se transfère, mais il doit y avoir une erreur dans la syntaxe, car le fichier n'arrive pas.

Peut être une idée ?

merci d'avance,

Hors ligne

 

#11 23-10-2011 10:42:46

xlat  
0xc0000005
Award: bf
Lieu: Tanger (طنج)
Date d'inscription: 04-12-2010
Messages: 725
Pépites: 11,358
Banque: 100,221,387,868,884,304
Site web

Re: [RESOLU] Ajouter des balises HTML dans un fichier XML

wazou1812 a écrit:

...
L'instruction submit envoi bien quelque chose, la fenêtre d'internet explorer s'ouvre bien, le fichier se transfère, mais il doit y avoir une erreur dans la syntaxe, car le fichier n'arrive pas.

Peut être une idée ?

merci d'avance,

Il faut peut-être remplacer des caracteres avant de les mettres dans l'attribut value='...' (je pense déjà aux simples quotte) ?

sinon, ne pourrais tu pas faire une chose du genre :

Code: pb

IE.document.Open
IE.document.WriteLn("<HTML>")
IE.document.WriteLn("<BODY>")
IE.document.WriteLn("<form  name='shipForm' enctype='multipart/form-data' action='https://service.ariba.com/service/transaction/cxml.asp' method='POST' ID='shipForm'>")
IE.document.WriteLn("<input type='hidden' name='cXML-urlencoded' value=''></FORM>")
IE.document.WriteLn("</BODY>")
IE.document.WriteLn("</HTML>")
IE.document.Close
IE.document.Forms("shipForm")['cXML-urlencoded'].value = i_PBDOM_DOCUMENT_SHIP.SaveDocumentIntoString() IE.document.Forms("shipForm").Submit()


comme cela, tu ne t'embête pas avec les remplacements de caractères.


https://lut.im/eJINqa9o/vAtyxD0h "Don't believe everything you read on the Internet"
    -- Abraham Lincoln

www.ngs.ma

Hors ligne

 

#12 24-10-2011 12:18:59

wazou1812  
Modératrice
Award: bf
Date d'inscription: 24-05-2006
Messages: 610
Pépites: 2,097
Banque: 3,536,631,712,504

Re: [RESOLU] Ajouter des balises HTML dans un fichier XML

xlat a écrit:

wazou1812 a écrit:

...
L'instruction submit envoi bien quelque chose, la fenêtre d'internet explorer s'ouvre bien, le fichier se transfère, mais il doit y avoir une erreur dans la syntaxe, car le fichier n'arrive pas.

Peut être une idée ?

merci d'avance,

Il faut peut-être remplacer des caracteres avant de les mettres dans l'attribut value='...' (je pense déjà aux simples quotte) ?

sinon, ne pourrais tu pas faire une chose du genre :

Code: pb

IE.document.Open
IE.document.WriteLn("<HTML>")
IE.document.WriteLn("<BODY>")
IE.document.WriteLn("<form  name='shipForm' enctype='multipart/form-data' action='https://service.ariba.com/service/transaction/cxml.asp' method='POST' ID='shipForm'>")
IE.document.WriteLn("<input type='hidden' name='cXML-urlencoded' value=''></FORM>")
IE.document.WriteLn("</BODY>")
IE.document.WriteLn("</HTML>")
IE.document.Close
IE.document.Forms("shipForm")['cXML-urlencoded'].value = i_PBDOM_DOCUMENT_SHIP.SaveDocumentIntoString() IE.document.Forms("shipForm").Submit()


comme cela, tu ne t'embête pas avec les remplacements de caractères.

en fin de compte c'est la syntaxe suivante qui fonctionne.

Code: pb

IE.document.Forms("shipForm").elements[0].value = i_PBDOM_DOCUMENT_SHIP.SaveDocumentIntoString()  


Un grand merci pour ton aide toujours aussi précieuse,

Hors ligne

 
  • Index
  •  » Powerscripts
  •  » [RESOLU] Ajouter des balises HTML dans un fichier XML

Pied de page des forums

Propulsé par FluxBB 1.2.22