Problem accessing the XML from the server


DevX Home    Today's Headlines   Articles Archive   Tip Bank   Forums   

Results 1 to 2 of 2

Thread: Problem accessing the XML from the server

  1. #1
    Amr Azim Guest

    Problem accessing the XML from the server


    I have a measurement converter that is xml based.
    Basically, I have an HTML with VB and Java scripts that talks to an xml file
    that contains all the metrics name and units.
    Somehow, my program works fine when I open it from my local drive.
    But when I try and open it on the server like:
    http://wwc1/Converter/conversion.html
    It will not populate the information from the xml file.
    All is shown is empty text boxs.
    That is how I call my xml file(here also a segment of my code):
    <script language="vbscript">

    ' Global variables

    XML_FILE_PATH = "conversion.xml"

    dim xObj

    XMLLoaded = false
    XMLTree = 0



    function Go()

    ' Start running a conversion

    ' Grab all form values

    DataGroupString = document.conversionform.unitgroup.value
    DataFromString = document.conversionform.fromname.value
    DataToString = document.conversionform.toname.value
    DataAmountString = document.conversionform.amount.value

    ' Use Default value of 1

    if Trim(DataAmountString) = "" then DataAmountstring = 1

    ' Run conversion and set results boxes

    document.conversionform.left.value = DataAmountString & " " & DataFromString
    document.conversionform.right.value = DoConversion(DataGroupString,
    DataAmountString, DataFromString, DataToString) &

    " " & DataToString

    end function



    function ChangeGroup()

    ' Clears and repopulates "to" and "from" boxes based on unitgroup change

    DataGroupString = document.conversionform.unitgroup.value

    ClearBox()

    UnitSet = GetUnitList(DataGroupString)
    for J = 0 to UBound(UnitSet)
    AddToBox UnitSet(J), DataGroupString
    next

    end function



    function LoadBaseGroup()

    ' This is run only once and populates the unit group box

    GroupSet = GetUnitGroupList()
    for I = 0 to UBound(GroupSet)
    AddToTopBox(GroupSet(I))
    next

    ChangeGroup()

    end function



    function DoConversion(UnitGroup, Value, FromString, ToString)

    ' This function actually runs the conversion

    if not XMLLoaded then
    ' Don't re-parse the xml if not needed
    set XMLTree = CreateObject("Microsoft.xmldom")
    XMLTree.load(XML_FILE_PATH)
    XMLLoaded = true
    end if

    ' At this point the xml file has been loaded

    HaveFrom = false
    HaveTo = false

    ' Control variables

    set CategorySet = XMLTree.documentElement.selectNodes("//unitgroup")
    for Each Category in CategorySet
    ' Check each unitgroup for the current one
    for each Attribute in Category.attributes
    if Attribute.nodeName = "name" and trim(lcase(Attribute.nodeValue))
    = trim(lcase(Unitgroup)) then
    ' Found the correct unitgroup
    set UnitSet = Category.selectNodes("unit")
    for each Unit in UnitSet
    ' Check each unit for the "from" and "to" units
    for each SubAttribute in Unit.attributes
    if SubAttribute.nodeName = "name" and trim(lcase(SubAttribute.nodeValue))
    = trim(lcase(FromString)) then
    ' Found "From"
    set FromTag = Unit
    HaveFrom = true
    end if
    if SubAttribute.nodeName = "name" and trim(lcase(SubAttribute.nodeValue))
    = trim(lcase(ToString)) then
    ' Found "To"
    set ToTag = Unit
    HaveTo = true
    end if
    next
    next
    end if
    next
    next

    if HaveFrom and HaveTo then
    ' Both were found
    Scale = 1
    Offset = 0
    for each Attribute in FromTag.attributes
    ' Conversion to the base unit
    if Attribute.nodeName = "scaleN" then
    Scale = Scale / Attribute.nodeValue
    elseif Attribute.nodeName = "scaleD" then
    Scale = Scale * Attribute.nodeValue
    elseif Attribute.nodeName = "offset" then
    Offset = Offset + Attribute.nodeValue
    end if
    next
    NewValue = Scale * (Value - Offset)

    Scale = 1
    Offset = 0
    for each Attribute in ToTag.attributes
    ' Conversion from the base unit to this one
    if Attribute.nodeName = "scaleN" then
    Scale = Scale * Attribute.nodeValue
    elseif Attribute.nodeName = "scaleD" then
    Scale = Scale / Attribute.nodeValue
    elseif Attribute.nodeName = "offset" then
    Offset = Offset + Attribute.nodeValue
    end if
    next

    NewValue = Scale * NewValue + Offset

    DoConversion = NewValue
    else
    ' Oops, unit not found

    DoConversion = "[Error]"
    end if

    end function

    PLEASE ADVISE.
    Thank you,
    Amr



  2. #2
    Buzzybee Guest

    Re: Problem accessing the XML from the server


    Try this.
    subsitute the URL variable with the url to your conversion.xml. It can also
    be an ASP page.

    The xmlhttp object can also be used to "put" xml to a server to be processed.

    URL = "http://localhost/test/WebClassDLLs/MarketVal.ASP?ClientNumber=500100030"
    set Xrequest = Server.CreateObject("microsoft.xmlhttp")
    strRequest = "<?xml version='1.0'?>"
    xrequest.open "GET", URL, false
    xrequest.setRequestHeader "Content-type", "text/xml"
    xrequest.send
    Set oXMLdoc = Server.CreateObject("Microsoft.XMLDom")
    strXML = Xrequest.responseText


    Now you have your XML from the server.

    I hope this helps.

    Buzzybee



    "Amr Azim" <amr.azim@sap.com> wrote:
    >
    >I have a measurement converter that is xml based.
    >Basically, I have an HTML with VB and Java scripts that talks to an xml

    file
    >that contains all the metrics name and units.
    >Somehow, my program works fine when I open it from my local drive.
    >But when I try and open it on the server like:
    > http://wwc1/Converter/conversion.html
    >It will not populate the information from the xml file.
    >All is shown is empty text boxs.
    >That is how I call my xml file(here also a segment of my code):
    ><script language="vbscript">
    >
    >' Global variables
    >
    > XML_FILE_PATH = "conversion.xml"
    >
    > dim xObj
    >
    > XMLLoaded = false
    > XMLTree = 0
    >
    >
    >
    > function Go()
    >
    >' Start running a conversion
    >
    >' Grab all form values
    >
    > DataGroupString = document.conversionform.unitgroup.value
    > DataFromString = document.conversionform.fromname.value
    > DataToString = document.conversionform.toname.value
    > DataAmountString = document.conversionform.amount.value
    >
    >' Use Default value of 1
    >
    > if Trim(DataAmountString) = "" then DataAmountstring = 1
    >
    >' Run conversion and set results boxes
    >
    > document.conversionform.left.value = DataAmountString & " " & DataFromString
    > document.conversionform.right.value = DoConversion(DataGroupString,
    >DataAmountString, DataFromString, DataToString) &
    >
    >" " & DataToString
    >
    > end function
    >
    >
    >
    > function ChangeGroup()
    >
    >' Clears and repopulates "to" and "from" boxes based on unitgroup change
    >
    > DataGroupString = document.conversionform.unitgroup.value
    >
    > ClearBox()
    >
    > UnitSet = GetUnitList(DataGroupString)
    > for J = 0 to UBound(UnitSet)
    > AddToBox UnitSet(J), DataGroupString
    > next
    >
    > end function
    >
    >
    >
    > function LoadBaseGroup()
    >
    >' This is run only once and populates the unit group box
    >
    > GroupSet = GetUnitGroupList()
    > for I = 0 to UBound(GroupSet)
    > AddToTopBox(GroupSet(I))
    > next
    >
    > ChangeGroup()
    >
    > end function
    >
    >
    >
    > function DoConversion(UnitGroup, Value, FromString, ToString)
    >
    >' This function actually runs the conversion
    >
    > if not XMLLoaded then
    > ' Don't re-parse the xml if not needed
    > set XMLTree = CreateObject("Microsoft.xmldom")
    > XMLTree.load(XML_FILE_PATH)
    > XMLLoaded = true
    > end if
    >
    >' At this point the xml file has been loaded
    >
    > HaveFrom = false
    > HaveTo = false
    >
    >' Control variables
    >
    > set CategorySet = XMLTree.documentElement.selectNodes("//unitgroup")
    > for Each Category in CategorySet
    >' Check each unitgroup for the current one
    > for each Attribute in Category.attributes
    > if Attribute.nodeName = "name" and trim(lcase(Attribute.nodeValue))
    >= trim(lcase(Unitgroup)) then
    >' Found the correct unitgroup
    > set UnitSet = Category.selectNodes("unit")
    > for each Unit in UnitSet
    >' Check each unit for the "from" and "to" units
    > for each SubAttribute in Unit.attributes
    > if SubAttribute.nodeName = "name" and trim(lcase(SubAttribute.nodeValue))
    >= trim(lcase(FromString)) then
    >' Found "From"
    > set FromTag = Unit
    > HaveFrom = true
    > end if
    > if SubAttribute.nodeName = "name" and trim(lcase(SubAttribute.nodeValue))
    >= trim(lcase(ToString)) then
    >' Found "To"
    > set ToTag = Unit
    > HaveTo = true
    > end if
    > next
    > next
    > end if
    > next
    > next
    >
    > if HaveFrom and HaveTo then
    >' Both were found
    > Scale = 1
    > Offset = 0
    > for each Attribute in FromTag.attributes
    >' Conversion to the base unit
    > if Attribute.nodeName = "scaleN" then
    > Scale = Scale / Attribute.nodeValue
    > elseif Attribute.nodeName = "scaleD" then
    > Scale = Scale * Attribute.nodeValue
    > elseif Attribute.nodeName = "offset" then
    > Offset = Offset + Attribute.nodeValue
    > end if
    > next
    > NewValue = Scale * (Value - Offset)
    >
    > Scale = 1
    > Offset = 0
    > for each Attribute in ToTag.attributes
    >' Conversion from the base unit to this one
    > if Attribute.nodeName = "scaleN" then
    > Scale = Scale * Attribute.nodeValue
    > elseif Attribute.nodeName = "scaleD" then
    > Scale = Scale / Attribute.nodeValue
    > elseif Attribute.nodeName = "offset" then
    > Offset = Offset + Attribute.nodeValue
    > end if
    > next
    >
    > NewValue = Scale * NewValue + Offset
    >
    > DoConversion = NewValue
    > else
    >' Oops, unit not found
    >
    > DoConversion = "[Error]"
    > end if
    >
    > end function
    >
    >PLEASE ADVISE.
    >Thank you,
    >Amr
    >
    >



Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center
 
 
FAQ
Latest Articles
Java
.NET
XML
Database
Enterprise
Questions? Contact us.
C++
Web Development
Wireless
Latest Tips
Open Source


   Development Centers

   -- Android Development Center
   -- Cloud Development Project Center
   -- HTML5 Development Center
   -- Windows Mobile Development Center