Click to See Complete Forum and Search --> : Xml Help


ericsodt
03-22-2004, 01:02 PM
This is what the imported XML file will look like:
<?xml version="1.0" encoding="UTF-8"?>
<App">
<PROP object="D11" key="1" year="2004" factor=".02" > </PROP>
<PROP object="D12" key="1" year="2005" factor=".05" > </PROP>
</APP>



Name Key 2004 2005
D11 | 1 | | |
D12 | 1 | | |

If I enter a value into D12 in year 2005 I want whatever the user entered to be multiplied by the factor of .05

Can anyone help me out with the javascript. I have some, but it only gets the highest level (parent) I need it to be more specific.

Thanks

paps
03-22-2004, 04:17 PM
ServicesXML = new ActiveXObject("Microsoft.XMLDOM");
ServicesXML.loadXML("UR XML File");
ServicePath = '/App/PROP/@object';
ServiceNode = ServicesXML.selectNodes(ServicePath);
for (i=0;i<ServiceNode.length;i++)
{
if (ServiceNode.item(i).nodeName == 'D12')
{
ServiceURL = ServiceNode.item(i).text;
/* Now that u have the D12 value, convert the string to a Float and multiply by 0.05 and WHOLA u have ur answer this same logic can be applied to ur other post.. */
}
}

HTH

Have Fun.

PS: I just had a second look at the code and realised the item(i).text would always give u "D12" where as u want the value of some other attribute...but i guess u can manage that bit :P

ericsodt
03-22-2004, 04:19 PM
paps,

I can not use Active X objects...


Originally posted by paps
ServicesXML = new ActiveXObject("Microsoft.XMLDOM");
ServicesXML.loadXML("UR XML File");
ServicePath = '/App/PROP/@object';
ServiceNode = ServicesXML.selectNodes(ServicePath);
for (i=0;i<ServiceNode.length;i++)
{
if (ServiceNode.item(i).nodeName == 'D12')
{
ServiceURL = ServiceNode.item(i).text;
/* Now that u have the D12 value, convert the string to a Float and multiply by 0.05 and WHOLA u have ur answer this same logic can be applied to ur other post.. */
}
}

HTH

Have Fun.

paps
03-22-2004, 04:20 PM
AHA...u never said anything bout that,.....

ericsodt
03-22-2004, 04:24 PM
Sorry, I posted that before on another screen, but not on this post.



Originally posted by paps
AHA...u never said anything bout that,.....

paps
03-25-2004, 07:30 PM
ok..heres another idea..how bout using msxsl:script???

heres an example of the same:

<msxsl:script language="JScript" implements-prefix="user"><![CDATA[
function daysFromPub(nodelistBook) {
var dToday = new Date();
var nodeBook = nodelistBook.item(0);
var sPublishDate = nodeBook.selectSingleNode("publish_date").text;
var nYear = Number(sPublishDate.substr(0,4));
var nMonth = Number(sPublishDate.substr(5,2)) - 1; // months are from 0 to 11
var nDay = sPublishDate.substr(8,2);

var MinMilli = 1000 * 60; //Initialize variables.
var HrMilli = MinMilli * 60;
var DyMilli = HrMilli * 24;

var dPublish = new Date(nYear, nMonth, nDay);

return String(Math.round((dPublish - dToday) / DyMilli));
}

]]> </msxsl:script>

probably this might work....

no activex object....