A man from Argentina asked me for some sample code to add data from an HTML form into an XML file.
I have put together three files - they are shown below
It needs you to be using IIS and to have MSXML4 installed on your server
First an XML file needs to exist - a sample of such an empty file is shown below - on my server it
can be found at
Next the HTML file is http://www.ibrus.com/testing/addtoxml.htm there is a link to it above.
It is a very skeletal file that should be fairly easy to understand, so I will not insult
any readers intelligence by describing it !!
<HTML> <HEAD> </HEAD> <BODY> <H1>DEMONSTRATION OF ADDING FIELDS TO XML FILE</H1> <FORM METHOD="POST" ACTION="addtoxml.ASP"> <input TYPE="TEXT" NAME="Field_1" size="48">Field 1 (A mandatory field)<br> <input TYPE="TEXT" NAME="Field_2" size="48">Field 2<br> <input TYPE="TEXT" NAME="Field_3" size="48">Field 3<br> <input TYPE="SUBMIT" VALUE="Save it"> <P> <img src="http://www.sst-counters.co.uk/counter1.asp?c_id=C321121"> </form> </BODY> </HTML>
Next comes the ASP (Active Server Page) that does the work - it is written, of course, in Visual Basic Script.
To understand it, you will need to have a reasonable knowledge of VBScript. If you do not
please feel free to enquire in the box at the bottom of this page (remember to include details
of who you are and your EMail address if you want a reply.
<% 'AddtoXML.asp function createXMLDocFromFile(xmlFileName) set xmlDoc = Server.CreateObject("MSXML2.DomDocument.4.0") xmlDoc.async = False xmlDoc.Load Server.MapPath(xmlFileName) xmlDoc.setProperty "SelectionLanguage", "XPath" set createXMLDocFromFile = xmlDoc end function sub addNewNode() set newNode = trialXmlDoc.createNode(1, Request.Form("Field_1"), "") newNode.setAttribute "Field_2", Request.Form("Field_2") newNode.setAttribute "Field_3", Request.Form("Field_3") trialXmlDoc.documentElement.appendChild(newNode) end sub 'MAIN if Request.Form("Field_1") = "" then ReplyText = "Field 1 must contain something ReplyText = ReplyText & "<P>Press BACK on your browser" ReplyText = ReplyText & " and try again." Response.Write ReplyText Response.End end if 'Get a unique file name Application("AppTimeNo") = Application("AppTimeNo") + 1 SecDef = DateDiff("s",date,now) If SecDef <> Application("SecDef") Then Application("AppTimeNo") = 1 End If Application("SecDef") = SecDef ReplyFile1 = (SecDef * 100) + Application("AppTimeNo") sXMLOutFile = ReplyFile1 & ".XML" set trialXmlDoc = createXMLDocFromFile("dummy.xml") call addNewNode trialXmlDoc.save(Server.MapPath(sXMLOutFile)) Response.contentType = "text/xml" Response.write trialXmlDoc.xml set trialXmlDoc = Nothing %>
I hope that you have found this interesting.
I hope that you have found this useful.
Either of those means that I did not waste my time.
Niether of these means that I am sorry that I wasted your time !!