thanasis_gt Δημοσ. 11 Φεβρουαρίου 2011 Δημοσ. 11 Φεβρουαρίου 2011 Καλημέρα φίλοι μου Θα ήθελα την βοήθεια σας αν γνωρίζει κάποιος πως μπορώ από μια Xml σελίδα να αποθηκεύσω σε μεταβλητή μια node ώστε μετά να κάνω post σε μια τράπεζα τα δεδομένα της μεταβλητής Για authentication Για παράδειγμα παίρνω response από το web services της τράπεζας σωστά και μου δημιουργεί ένα ticket αυτό πρέπει να το στύλο ξανά στη τράπεζα και με άλλα στοιχειά που έχω βάλει στη φόρμα μου ώστε να μπορεί ο πελάτης να συνδεθεί στη τράπεζα για και να κάνει τη πληρωμή του Ελπίζω να έγινα κατανοητός Ευχαριστώ για οποιαδήποτε βοήθεια σας Η xml σελίδα είναι αυτή <?xml version="1.0" encoding="utf-8" ?> - <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> - <soap:Body> - <IssueNewTicketResponse xmlns="http://piraeusbank.gr/paycenter/redirection"> - <IssueNewTicketResult> <ResultCode>0</ResultCode> <ResultDescription /> <TranTicket>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</TranTicket> <Timestamp>2011-02-11T09:12:05.562125+02:00</Timestamp> <MinutesToExpiration>30</MinutesToExpiration> </IssueNewTicketResult> </IssueNewTicketResponse> </soap:Body> </soap:Envelope> Δεν θέλω να την εμφανίζω τη σελίδα αυτή άλλα να γίνετε direct response στη forma μου και να έχω αποθήκευση σε μια μεταβλητή το TranTicket .
digimyth Δημοσ. 11 Φεβρουαρίου 2011 Δημοσ. 11 Φεβρουαρίου 2011 Κοίτα εδώ: http://www.w3schools.../xml_parser.asp και εδώ: http://stackoverflow...asp-xml-parsing Ψάξε στο google για XML parser. Προσωπικά δε κατάλαβα τι ακριβώς κάνει και πως πρέπει να λειτουργεί... Στο παράδειγμά σου λείπουν πολλές πληροφορίες για την επικοινωνία και τη μορφή του ticket αλλά και τον τρόπο που θες να το στείλεις. Έχεις καθόλου κώδικα έτοιμο; Επίσης που κολλάει το xml με το ticket? Δε βλέπω να το αναφέρεις στο παράδειγμά σου. Επίσης ένα αρχείο xml δεν είναι σελίδα! Είναι ένα αρχείο xml που περιγράφει μια δομή ενός αντικειμένου.
thanasis_gt Δημοσ. 11 Φεβρουαρίου 2011 Μέλος Δημοσ. 11 Φεβρουαρίου 2011 Η τραπεζα μου εχει δωσει τα εξης αρχεια . Τρεχω αυτη την asp σελιδα <!-- #include file="include/common.asp" --> <% sub main() Response.ContentType = "text/xml" Dim oXMLHttp Dim URL Dim xmlFile Dim xmlDocRequest Dim xmlString Dim xmlSchema Dim xmlError 'Post URL URL="https://paycenter.piraeusbank.gr/services/tickets/issuer.asmx" 'Create Object Set oXMLHttp = Server.CreateObject("msxml2.ServerXMLHTTP") 'XML Sample xmlFile = Server.MapPath("schemas/ticketingSample.xml") set xmlDocRequest = newXMLDomFile(xmlFile) xmlString = xmlDocRequest.xml Dim xml oXMLHttp.open "POST", URL, false oXMLHttp.setTimeouts 3000, 55000, 90000, 90000 oXMLHttp.setRequestHeader "Content-Type", "text/xml" oXMLHttp.send(xmlString) set xml=server.createobject("Microsoft.xmldom") xml.async=false xml.load(oXMLHttp.responsexml) 'Print XML Response.write oxmlhttp.responsetext set oXMLHttp = nothing end sub call main() %> <% %> και μου φερνει το αποτελεσμα απο το xml - > ticketingSample.xml <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body><IssueNewTicket xmlns="http://piraeusbank.gr/paycenter/redirection"> <Request> <Username xsi:type="xsd:string">PO238853</Username> <Password xsi:type="xsd:string">xxxxxxxxxxxxxxxxxxxxxxxxxxx</Password> <MerchantId xsi:type="xsd:int">xxxx</MerchantId> <PosId xsi:type="xsd:int">xxxxx</PosId> <AcquirerId xsi:type="xsd:int">xx</AcquirerId> <MerchantReference xsi:type="xsd:string">xx</MerchantReference> <RequestType xsi:type="xsd:string">xx</RequestType> <ExpirePreauth xsi:type="xsd:int">xx</ExpirePreauth> <Amount xsi:type="xsd:int">0.01</Amount> <CurrencyCode xsi:type="xsd:int">xx</CurrencyCode> <Installments xsi:type="xsd:int">0</Installments> <Bnpl xsi:type="xsd:int">0</Bnpl> <Parameters xsi:type="xsd:string"></Parameters> </Request> </IssueNewTicket> </SOAP-ENV:Body></SOAP-ENV:Envelope> επισεις μου εχει δοσει και αυτι την asp σελιδα <% '******************************************************************************* ' newXMLDom (FUNCTION) ' ' PARAMETERS: ' 0 (ByRef) - sXML - String ' ' RETURN VALUE: ' A DOMDocument object ' ' DESCRIPTION: ' Creates and returns a DOMDocument object, which is pre-loaded with the xml ' string sXML '******************************************************************************* function newXMLDom(sXML) dim xmlDoc set xmlDoc = Server.CreateObject("MSXML2.DOMDocument") xmlDoc.async = false xmlDoc.setProperty "SelectionLanguage", "XPath" xmlDoc.LoadXML(sXML) set newXMLDom = xmlDoc end function '******************************************************************************* ' newXMLDomFile (FUNCTION) ' ' PARAMETERS: ' 0 (ByRef) - filepath - String ' ' RETURN VALUE: ' A DOMDocument object ' ' DESCRIPTION: ' Creates and returns a DOMDocument object, which is pre-loaded with the xml ' found in the file located at filepath '******************************************************************************* function newXMLDomFile(filepath) dim xmlDoc set xmlDoc = Server.CreateObject("MSXML2.DOMDocument") xmlDoc.async = false xmlDoc.setProperty "SelectionLanguage", "XPath" xmlDoc.Load(filepath) set newXMLDomFile = xmlDoc end function '******************************************************************************* ' getXMLItem (FUNCTION) ' ' PARAMETERS: ' 0 (ByRef) - xmlDoc - DOMDocument ' 1 (ByRef) - xpathstring - String ' 2 (ByRef) - i - Int ' 3 (ByRef) - nodeName - String ' ' RETURN VALUE: ' A String value ' ' DESCRIPTION: ' Returns the text contained in the XML node 'nodeName', which exists in 'xmlDoc' ' and is a child of the i-th occurrence of the node located at 'xpathstring' ' within 'xmlDoc' '******************************************************************************* function getXMLItem(xmlDoc, xpathstring, i, nodeName) dim anXMLItem set anXMLItem = xmlDoc.documentElement.selectNodes("//" & xpathstring).Item(i).selectSingleNode(nodeName) if anXMLItem is nothing then getXMLItem = "" else getXMLItem = anXMLItem.text end if end function '******************************************************************************* ' getXMLItem2 (FUNCTION) ' ' PARAMETERS: ' 0 (ByRef) - xmlNodes - ' 1 (ByRef) - i - Int ' 2 (ByRef) - nodeName - String ' ' RETURN VALUE: ' A String value ' ' DESCRIPTION: ' Returns the text contained in the XML node 'nodeName', which is a child of the ' i-th node in 'xmlNodes' '******************************************************************************* function getXMLItem2(xmlNodes, i, nodeName) dim anXMLItem set anXMLItem = xmlNodes.Item(i).selectSingleNode(nodeName) if anXMLItem is nothing then getXMLItem2 = "" else getXMLItem2 = anXMLItem.text end if end function '******************************************************************************* ' getXMLItem3 (FUNCTION) ' ' PARAMETERS: ' 0 (ByRef) - xmlNode - ' 1 (ByRef) - nodeName - String ' ' RETURN VALUE: ' A String value ' ' DESCRIPTION: ' Returns the text contained in the XML node 'nodeName', which is a child of the ' node 'xmlNode' '******************************************************************************* function getXMLItem3(xmlNode, nodeName) dim anXMLItem set anXMLItem = xmlNode.selectSingleNode(nodeName) if anXMLItem is nothing then getXMLItem3 = "" else getXMLItem3 = anXMLItem.text end if end function '******************************************************************************* ' xmlNodeText (FUNCTION) ' ' PARAMETERS: ' 0 (ByRef) - xmlDoc - DOMDocument ' 1 (ByRef) - nodeName - String ' ' RETURN VALUE: ' A String value ' ' DESCRIPTION: ' Returns the text contained in the XML node 'nodeName', which exists in ' 'xmlDoc'. '******************************************************************************* function xmlNodeText(xmlDoc, nodeName) dim anXMLItem set anXMLItem = xmlDoc.selectSingleNode("//" & nodeName) if anXMLItem is nothing then xmlNodeText = "" else xmlNodeText = anXMLItem.text end if end function '******************************************************************************* ' appendXMLItem (FUNCTION) ' ' PARAMETERS: ' 0 (ByRef) - xmlDoc - DOMDocument ' 1 (ByRef) - nodeName - String ' 2 (ByRef) - nodeText - String ' 3 (ByRef) - parentNode - String ' 4 (ByRef) - nodePosition - Integer ' ' RETURN VALUE: ' None ' ' DESCRIPTION: ' Appends a new node into the specified position in 'xmlDoc' '******************************************************************************* function appendXMLItem(xmlDoc, nodeName, nodeText, parentNode, nodePosition) set newElem = xmlDoc.createElement(nodeName) newElem.text = nodeText if parentNode = "" then xmlDoc.documentElement.appendChild newElem else xmlDoc.documentElement.getElementsByTagName(parentNode).Item(nodePosition).appendChild newElem end if end function function validateSchema(xmlDoc, xmlSchemaName) end function function loadVariables (xmlDoc) 'Ãéá êÜèå leaf node êÜíå assign óôçí ìåôáâëçôÞ ìå ôï ßäéï üíïìá. Ïé ìåôáâëçôÝò ðñÝðåé íá Ý÷ïõí äçëùèåß ìå dim. 'íá âÜæïõìå ìðñïóôÜ óôï üíïìá Ýíá ðñüèåìá, ð.÷. 'str' end function %>
digimyth Δημοσ. 11 Φεβρουαρίου 2011 Δημοσ. 11 Φεβρουαρίου 2011 Ναι νομίζω ότι κατάλαβα. Πρέπει να υλοποιήσεις το xml parser που είπα προηγουμένως και κάθε node να καταλήγει στη φόρμα σου. Μετά θα προσθέτεις κάποιες έξτρα πληροφορίες και θα το στέλνεις πίσω. Σωστά; Από κώδικα δυστυχώς δε μπορώ να σε βοηθήσω γιατί δεν ασχολούμαι με asp αλλά όπως σου είπα ψάξε στο google για "xml parser" δηλαδή κώδικα που θα "αποκρυπτογραφεί" το xml αρχείο ώστε να το βάλεις στη φόρμα σου. Μετά για να φτιάξεις πάλι το νέο xml θα χρησιμοποιήσεις τις συναρτήσεις της τελευταίας σελίδας που πόσταρες και για να τα στείλεις πίσω θα χρησιμοποιήσεις τον κώδικα της πρώτης. Το πρόβλημα όμως είναι ότι πρέπει να ξέρεις τα ονόματα των νέων κόμβων που θα προσθέσεις γιατί δε μπορείς να βάλεις ότι να ναι γιατί δε θα τα αναγνωρίσει ο αντίστοιχος parser στον σέρβερ που θα τα στείλεις.
thanasis_gt Δημοσ. 11 Φεβρουαρίου 2011 Μέλος Δημοσ. 11 Φεβρουαρίου 2011 περιπου αυτο θα κανω.. εχω πελαγωσει δεν με βλεπο να γινετε .. και μετα προβλημα με τη δουλεια ! ευχαριστω παντος!!!
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.