homeshopper
asked on
problem formatting xml file using Classic ASP code
I have classic asp code as shown in section (c) below:
It produces test.xml formatted as section (a) below:
How can I change the code to format test.xml as section (b) below:
also, only have one LoginDetails node?
also, where to put vbCrLf to produce new line after node is closed?
Thank you in advance for any help given.
(a) test.xml incorrect formatting in file:
<?xml version="1.0"?>
<LoginDetails><LoginDetail s><Provide r>sqloledb </Provider ><Username >sa</Usern ame><Passw ord>H6web9 7!</Passwo rd><Server >Dinosaur1 \sqlexpres s</Server> <Port>4096 </Port><Da tabase>Adm inDB2</Dat abase><Tab le>AdminTa ble</Table ></LoginDe tails></Lo ginDetails >
(b) test.xml with required formatting in file:
<?xml version="1.0"?>
<LoginDetails>
<Provider>sqloledb</Provid er>
<Username>sa</Username>
<Password>H6web97!</Passwo rd>
<Server>Dinosaur1\sqlexpre ss</Server >
<Port>4096</Port>
<Database>AdminDB2</Databa se>
<Table>AdminTable</Table>
</LoginDetails>
(c) classic asp code:
<%
Dim tmpAccountName, xmlpath, blnFileExist, objXMLv, tmpClubID, tmpMemberNo, tmpPassword, xmlObj
xmlpath = server.MapPath("../Templat e/XML/" & tmpAccountName & "test.xml")
set objXML = CreateObject("Microsoft.Fr eeThreaded XMLDOM")
objXML.async = False
blnFileExist = objXML.load(xmlpath)
If not(blnFileExist) Then
objXML.appendChild(objXML. createProc essingInst ruction("x ml","versi on=""1.0"" " & vbCrLf))
objXML.appendChild(objXML. createElem ent("Login Details"))
Set objXMLv = objXML.createElement("Logi nDetails")
'Assign this node an ID, and give the ID a value
'objXMLv.setAttribute "ID", tmpClubID
objXMLv.appendChild(objXML .createEle ment("Prov ider"))
objXMLv.appendChild(objXML .createEle ment("User name"))
objXMLv.appendChild(objXML .createEle ment("Pass word"))
objXMLv.appendChild(objXML .createEle ment("Serv er"))
objXMLv.appendChild(objXML .createEle ment("Port "))
objXMLv.appendChild(objXML .createEle ment("Data base"))
objXMLv.appendChild(objXML .createEle ment("Tabl e"))
objXMLv.childNodes(0).text = txtProvider
objXMLv.childNodes(1).text = txtUsername
objXMLv.childNodes(2).text = txtPassword
objXMLv.childNodes(3).text = txtServer
objXMLv.childNodes(4).text = PortTextBox
objXMLv.childNodes(5).text = DatabaseTextBox
objXMLv.childNodes(6).text = TableTextBox
objXML.documentElement.app endChild(o bjXMLv.clo neNode(tru e))
objXML.save(xmlpath)
End If
Set objXMLv = nothing
Set xmlObj = nothing
%>
It produces test.xml formatted as section (a) below:
How can I change the code to format test.xml as section (b) below:
also, only have one LoginDetails node?
also, where to put vbCrLf to produce new line after node is closed?
Thank you in advance for any help given.
(a) test.xml incorrect formatting in file:
<?xml version="1.0"?>
<LoginDetails><LoginDetail
(b) test.xml with required formatting in file:
<?xml version="1.0"?>
<LoginDetails>
<Provider>sqloledb</Provid
<Username>sa</Username>
<Password>H6web97!</Passwo
<Server>Dinosaur1\sqlexpre
<Port>4096</Port>
<Database>AdminDB2</Databa
<Table>AdminTable</Table>
</LoginDetails>
(c) classic asp code:
<%
Dim tmpAccountName, xmlpath, blnFileExist, objXMLv, tmpClubID, tmpMemberNo, tmpPassword, xmlObj
xmlpath = server.MapPath("../Templat
set objXML = CreateObject("Microsoft.Fr
objXML.async = False
blnFileExist = objXML.load(xmlpath)
If not(blnFileExist) Then
objXML.appendChild(objXML.
objXML.appendChild(objXML.
Set objXMLv = objXML.createElement("Logi
'Assign this node an ID, and give the ID a value
'objXMLv.setAttribute "ID", tmpClubID
objXMLv.appendChild(objXML
objXMLv.appendChild(objXML
objXMLv.appendChild(objXML
objXMLv.appendChild(objXML
objXMLv.appendChild(objXML
objXMLv.appendChild(objXML
objXMLv.appendChild(objXML
objXMLv.childNodes(0).text
objXMLv.childNodes(1).text
objXMLv.childNodes(2).text
objXMLv.childNodes(3).text
objXMLv.childNodes(4).text
objXMLv.childNodes(5).text
objXMLv.childNodes(6).text
objXML.documentElement.app
objXML.save(xmlpath)
End If
Set objXMLv = nothing
Set xmlObj = nothing
%>
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Below is the complete code for others to view:
Case "Write XML"
txtProvider = Session("xtProvider")
txtUsername = Session("xtUsername")
txtPassword = Session("xtPassword")
txtServer = Session("xtServer")
PortTextBox = Session("xtPortTextBox")
DatabaseTextBox = Session("xtDatabaseTextBox
TableTextBox = Session("xtTableTextBox")
FileName2 = Session("FileName2")
xmlpath = server.MapPath(FileName2)
Dim e, tmpAccountName, xmlpath, blnFileExist, objXMLv, tmpClubID, tmpMemberNo, tmpPassword, xmlObj
xmlpath = server.MapPath("../Templat
set objXML = CreateObject("Microsoft.Fr
objXML.async = False
blnFileExist = objXML.load(xmlpath)
If not(blnFileExist) Then
objXML.appendChild(objXML.
Set objXMLv = objXML.createElement("Logi
objXML.appendChild(objXMLv
set e = objXML.createElement("Prov
e.text = txtProvider
objXMLv.appendChild(e)
objXMLv.appendChild(objXML
set e = objXML.createElement("User
e.text = txtUsername
objXMLv.appendChild( e )
objXMLv.appendChild(objXML
set e = objXML.createElement("Pass
e.text = txtPassword
objXMLv.appendChild( e )
objXMLv.appendChild(objXML
set e = objXML.createElement("Serv
e.text = txtServer
objXMLv.appendChild( e )
objXMLv.appendChild(objXML
set e = objXML.createElement("Port
e.text = PortTextBox
objXMLv.appendChild( e )
objXMLv.appendChild(objXML
set e = objXML.createElement("Data
e.text = DatabaseTextBox
objXMLv.appendChild( e )
objXMLv.appendChild(objXML
set e = objXML.createElement("Tabl
e.text = TableTextBox
objXMLv.appendChild( e )
objXMLv.appendChild(objXML
objXML.save(xmlpath)
End If
Set objXMLv = nothing
Set xmlObj = nothing
Case Default