graphicodyssey
asked on
Adding XML Version node using MSXML and ASP
I need to add the version node ("<?xml version="1.0"?>") for a xml object I'm creating from scratch using ASP and MSXML. I've tried so many times, but I can't seem to get it. It always wants to put it within the first child and not at the very top of the document.
Help! Thanks!
My code...
<%
response.contenttype="text /xml"
'Create an XML DOM object
Set xmlObj = Server.CreateObject("MSXML 2.DOMDocum ent.4.0")
'Create the root element
Set xmlServiceRequest = xmlObj.createElement("Rati ngServiceS electionRe quest")
'------------------------ Start Request
Set xmlRequest = xmlObj.createElement("Requ est")
Set xmlRequestAction = xmlObj.createElement("Requ estAction" )
Set xmlRequestActionText = xmlObj.createTextNode("Rat e")
xmlRequestAction.appendChi ld(xmlRequ estActionT ext)
Set xmlRequestOption = xmlObj.createElement("Requ estOption" )
Set xmlRequestOptionText = xmlObj.createTextNode("Sho p")
xmlRequestOption.appendChi ld(xmlRequ estOptionT ext)
xmlRequest.appendChild(xml RequestAct ion)
xmlRequest.appendChild(xml RequestOpt ion)
xmlServiceRequest.appendCh ild(xmlReq uest)
'------------------------ End Request
'------------------------ Start Pickup Type
Set xmlPickupType = xmlObj.createElement("Pick upType")
Set xmlCode = xmlObj.createElement("Code ")
Set xmlCodeText = xmlObj.createTextNode("01" )
xmlCode.appendChild(xmlCod eText)
xmlPickupType.appendChild( xmlCode)
xmlServiceRequest.appendCh ild(xmlPic kupType)
'------------------------ End Pickup Type
'------------------------ Start Shipment
Set xmlShipment = xmlObj.createElement("Ship ment")
'------------------------ Start Shipper
Set xmlShipper = xmlObj.createElement("Ship per")
Set xmlShipperNumber = xmlObj.createElement("Ship perNumber" )
Set xmlShipperNumberText = xmlObj.createTextNode("### #####")
xmlShipperNumber.appendChi ld(xmlShip perNumberT ext)
xmlShipper.appendChild(xml ShipperNum ber)
Set xmlShipperAddress = xmlObj.createElement("Addr ess")
Set xmlPostalCode = xmlObj.createElement("Post alCode")
Set xmlPostalCodeText = xmlObj.createTextNode("999 99")
xmlPostalCode.appendChild( xmlPostalC odeText)
xmlShipperAddress.appendCh ild(xmlPos talCode)
xmlShipper.appendChild(xml ShipperAdd ress)
xmlShipment.appendChild(xm lShipper)
'------------------------ End Shipper
'------------------------ Start Ship To
Set xmlShipTo = xmlObj.createElement("Ship To")
Set xmlAddress = xmlObj.createElement("Addr ess")
Set xmlPostalCode = xmlObj.createElement("Post alCode")
Set xmlPostalCodeText = xmlObj.createTextNode("999 99")
xmlPostalCode.appendChild( xmlPostalC odeText)
xmlAddress.appendChild(xml PostalCode )
xmlShipTo.appendChild(xmlA ddress)
xmlShipment.appendChild(xm lShipTo)
'------------------------ End Ship To
'------------------------ Start Package
Set xmlPackage = xmlObj.createElement("Pack age")
'Packaging Type
Set xmlPackagingType = xmlObj.createElement("Pack agingType" )
Set xmlCode = xmlObj.createElement("Code ")
Set xmlCodeText = xmlObj.createTextNode("02" )
xmlCode.appendChild(xmlCod eText)
xmlPackagingType.appendChi ld(xmlCode )
xmlPackage.appendChild(xml PackagingT ype)
'Package Weight
Set xmlPackageWeight = xmlObj.createElement("Pack ageWeight" )
Set xmlWeight = xmlObj.createElement("Weig ht")
Set xmlWeightText = xmlObj.createTextNode("25" )
xmlWeight.appendChild(xmlW eightText)
xmlPackageWeight.appendChi ld(xmlWeig ht)
Set xmlUnitOfMeasurement = xmlObj.createElement("Unit OfMeasurem ent")
Set xmlCode = xmlObj.createElement("Code ")
Set xmlCodeText = xmlObj.createTextNode("LBS ")
xmlCode.appendChild(xmlCod eText)
xmlUnitOfMeasurement.appen dChild(xml Code)
xmlPackageWeight.appendChi ld(xmlUnit OfMeasurem ent)
xmlPackage.appendChild(xml PackageWei ght)
'Package Service Options
Set xmlPackageServiceOptions = xmlObj.createElement("Pack ageService Options")
Set xmlInsuredValue = xmlObj.createElement("Insu redValue")
Set xmlMonetaryValue = xmlObj.createElement("xmlM onetaryVal ue")
Set xmlMonetaryValueText = xmlObj.createTextNode("325 .00")
xmlMonetaryValue.appendChi ld(xmlMone taryValueT ext)
xmlInsuredValue.appendChil d(xmlMonet aryValue)
Set xmlCurrencyCode = xmlObj.createElement("xmlC urrencyCod e")
Set xmlCurrencyCodeText = xmlObj.createTextNode("USD ")
xmlCurrencyCode.appendChil d(xmlCurre ncyCodeTex t)
xmlInsuredValue.appendChil d(xmlCurre ncyCode)
xmlPackageServiceOptions.a ppendChild (xmlInsure dValue)
xmlPackage.appendChild(xml PackageSer viceOption s)
xmlShipment.appendChild(xm lPackage)
'------------------------ End Package
xmlServiceRequest.appendCh ild(xmlShi pment)
'------------------------ End Shipment
Response.Write xmlServiceRequest.xml
%>
Help! Thanks!
My code...
<%
response.contenttype="text
'Create an XML DOM object
Set xmlObj = Server.CreateObject("MSXML
'Create the root element
Set xmlServiceRequest = xmlObj.createElement("Rati
'------------------------ Start Request
Set xmlRequest = xmlObj.createElement("Requ
Set xmlRequestAction = xmlObj.createElement("Requ
Set xmlRequestActionText = xmlObj.createTextNode("Rat
xmlRequestAction.appendChi
Set xmlRequestOption = xmlObj.createElement("Requ
Set xmlRequestOptionText = xmlObj.createTextNode("Sho
xmlRequestOption.appendChi
xmlRequest.appendChild(xml
xmlRequest.appendChild(xml
xmlServiceRequest.appendCh
'------------------------ End Request
'------------------------ Start Pickup Type
Set xmlPickupType = xmlObj.createElement("Pick
Set xmlCode = xmlObj.createElement("Code
Set xmlCodeText = xmlObj.createTextNode("01"
xmlCode.appendChild(xmlCod
xmlPickupType.appendChild(
xmlServiceRequest.appendCh
'------------------------ End Pickup Type
'------------------------ Start Shipment
Set xmlShipment = xmlObj.createElement("Ship
'------------------------ Start Shipper
Set xmlShipper = xmlObj.createElement("Ship
Set xmlShipperNumber = xmlObj.createElement("Ship
Set xmlShipperNumberText = xmlObj.createTextNode("###
xmlShipperNumber.appendChi
xmlShipper.appendChild(xml
Set xmlShipperAddress = xmlObj.createElement("Addr
Set xmlPostalCode = xmlObj.createElement("Post
Set xmlPostalCodeText = xmlObj.createTextNode("999
xmlPostalCode.appendChild(
xmlShipperAddress.appendCh
xmlShipper.appendChild(xml
xmlShipment.appendChild(xm
'------------------------ End Shipper
'------------------------ Start Ship To
Set xmlShipTo = xmlObj.createElement("Ship
Set xmlAddress = xmlObj.createElement("Addr
Set xmlPostalCode = xmlObj.createElement("Post
Set xmlPostalCodeText = xmlObj.createTextNode("999
xmlPostalCode.appendChild(
xmlAddress.appendChild(xml
xmlShipTo.appendChild(xmlA
xmlShipment.appendChild(xm
'------------------------ End Ship To
'------------------------ Start Package
Set xmlPackage = xmlObj.createElement("Pack
'Packaging Type
Set xmlPackagingType = xmlObj.createElement("Pack
Set xmlCode = xmlObj.createElement("Code
Set xmlCodeText = xmlObj.createTextNode("02"
xmlCode.appendChild(xmlCod
xmlPackagingType.appendChi
xmlPackage.appendChild(xml
'Package Weight
Set xmlPackageWeight = xmlObj.createElement("Pack
Set xmlWeight = xmlObj.createElement("Weig
Set xmlWeightText = xmlObj.createTextNode("25"
xmlWeight.appendChild(xmlW
xmlPackageWeight.appendChi
Set xmlUnitOfMeasurement = xmlObj.createElement("Unit
Set xmlCode = xmlObj.createElement("Code
Set xmlCodeText = xmlObj.createTextNode("LBS
xmlCode.appendChild(xmlCod
xmlUnitOfMeasurement.appen
xmlPackageWeight.appendChi
xmlPackage.appendChild(xml
'Package Service Options
Set xmlPackageServiceOptions = xmlObj.createElement("Pack
Set xmlInsuredValue = xmlObj.createElement("Insu
Set xmlMonetaryValue = xmlObj.createElement("xmlM
Set xmlMonetaryValueText = xmlObj.createTextNode("325
xmlMonetaryValue.appendChi
xmlInsuredValue.appendChil
Set xmlCurrencyCode = xmlObj.createElement("xmlC
Set xmlCurrencyCodeText = xmlObj.createTextNode("USD
xmlCurrencyCode.appendChil
xmlInsuredValue.appendChil
xmlPackageServiceOptions.a
xmlPackage.appendChild(xml
xmlShipment.appendChild(xm
'------------------------ End Package
xmlServiceRequest.appendCh
'------------------------ End Shipment
Response.Write xmlServiceRequest.xml
%>
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
I lied... it did work... well it did after I adjusted something. I wasn't attaching the nodes I was creating back to the DOM object. Once I did that I was able to attach the processing instructions to the DOM. Otherwise the parser was complaining that the root was null. So, my code ended up looking like...
<%
response.contenttype="text /xml"
'Create an XML DOM object
Set xmlObj = Server.CreateObject("MSXML 2.DOMDocum ent.4.0")
'Create the processing instructions node
Set xmlVersion = xmlObj.createProcessingIns truction(" xml", "version=""1.0""")
'Create the root element
Set xmlServiceRequest = xmlObj.createElement("Rati ngServiceS electionRe quest")
'Attach the version and attach the first node
xmlObj.appendChild(xmlVers ion)
xmlObj.appendChild(xmlServ iceRequest )
...all other node code...
Response.Write xmlObj.xml
%>
Thanks for your help!
<%
response.contenttype="text
'Create an XML DOM object
Set xmlObj = Server.CreateObject("MSXML
'Create the processing instructions node
Set xmlVersion = xmlObj.createProcessingIns
'Create the root element
Set xmlServiceRequest = xmlObj.createElement("Rati
'Attach the version and attach the first node
xmlObj.appendChild(xmlVers
xmlObj.appendChild(xmlServ
...all other node code...
Response.Write xmlObj.xml
%>
Thanks for your help!
ASKER
The code I'm trying...
'Create an XML DOM object
Set xmlObj = Server.CreateObject("MSXML
'Add the processing instructions
Set pi = xmlObj.createProcessingIns
xmlObj.appendChild pi
'Create the root element
Set xmlServiceRequest = xmlObj.createElement("Rati
I'll try the second method now.