CodingForums.com

CodingForums.com (http://www.codingforums.com/index.php)
-   DOM and JSON scripting (http://www.codingforums.com/forumdisplay.php?f=15)
-   -   Please help!! JavaScript XSL combine (http://www.codingforums.com/showthread.php?t=284901)

larnott01795 12-27-2012 03:07 PM

Please help!! JavaScript XSL combine
 
Hi,

I have a JavaScript function which is embeded in an XSL file, I am using this to try and bring back a list of strings based on a number of rows in an XML file.

The problem I have is that I do not have the url of the XML file as this is created on the fly so I cannot load this in to look at the specific nodes of the file.

I am therefore trying to get some info from the XML file using an XSL tranformation in my javascript code. This works great, apart from one part of the code which I cannot get to use the variable "i". This is the part [@index=1] in the code below.

Code:

function Test()
{
        var xmlDoc = Navigator.CurrentXML;
        //xmlDoc.getElementsById("STAFF");
        var inputList = document.getElementsByTagName("select");
        docList="";
        for (var i = 0; i < inputList.length; i++)
        {
        docList += "GroupSetAttendanceType?documentList="
+"<xsl:value-of select="Data/DataRow[@index=1]/ID" />&amp;attendanceTypeID="
+ inputList.item(i)[inputList.item(i).selectedIndex].value
+ "&amp;attendanceTypeDesc="
+ inputList.item(i)[inputList.item(i).selectedIndex].text;
        }

        GetControl("TestLine").innerHTML = docList;
}

Instead of [@index=1] I want it to be [@index=i+1] and use the variable i to determine what row index to use in the code. When I try this however it just brings out a null value.

I have tried things such as trying to split the text

"<xsl:value-of select="Data/DataRow[@index=1]/ID" />"

into

"<xsl:value-of select="Data/DataRow[@index="
+(i+1)+
"]/ID" />"

but this brings up an error saying
"The XSL could not be parsed. The error is Name cannot begin with the '+' character, hexadecimal value 0x2B. Line 16, position 99."

Any help would be greatly appreacted as I am pulling my hair out trying to get this to work.

Many thanks,

Laurence

AndrewGSW 12-27-2012 03:21 PM

Your use of quotation is incorrect: you cannot nest double quotes within double quotes.

"This "won't" work"
"This \"will\" work, using 'escaping'"
"This 'will also' work, using apostrophes"

larnott01795 12-27-2012 03:39 PM

Quote:

Originally Posted by AndrewGSW (Post 1302455)
Your use of quotation is incorrect: you cannot nest double quotes within double quotes.

"This "won't" work"
"This \"will\" work, using 'escaping'"
"This 'will also' work, using apostrophes"

Great thanks for your help, I have tried this but with no luck, can you see if the either of the below are correct as these have both produced errors :(

Code:

"<xsl:value-of select=\"Data/DataRow[@index="+(i+1)+"]/ID\" />&amp;attendanceTypeID="
and

Code:

"<xsl:value-of select='Data/DataRow[@index="+(i+1)+"]/ID' />&amp;attendanceTypeID="

AndrewGSW 12-27-2012 06:35 PM

I'm guessing this
Code:

inputList.item(i)[inputList.item(i).selectedIndex].value
is probably wrong. If inputList is a SELECT then probably:
Code:

inputList[inputList.selectedIndex].value
// or..
inputList[i].value



All times are GMT +1. The time now is 10:07 AM.

Powered by vBulletin®
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.