11,13d10 < // https://www.rjmprogramming.com.au/PHP/CalendarChart/calendar_chart.php?title=Red%20Sox%20Attendance&desc=Red%20Sox%20Attendance&data=[newDate(2023,11,03),34],[newDate(2023,11,18),56] < // https://www.rjmprogramming.com.au/PHP/TimelineChart/timeline_chart.php?title=US%20President&desc=US%20President&data=[~one~,newDate(2023,11,10),newDate(2023,11,12)],[~two~,newDate(2023,11,24),newDate(2023,11,26)] < // https://www.rjmprogramming.com.au/PHP/AnnotatedTimelineChart/index.php?title=Sold%20Pencils%20and%20Sold%20Pens&desc1=Sold%20Pencils&title1=Sold%20Pencils%20title1&text1=Sold%20Pencils%20text1&desc2=Sold%20Pens&title2=Sold%20Pens%20title2&text2=Sold%20Pens%20text2&data=[newDate(2023,11,10),5,~adbh~,~teh~,7,~trh~,~trh~],[newDate(2023,11,20),3,~teh~,~teh~,8,~tqh~,~trh~] 27c24 < var arrflds=[], dtarrflds=[]; --- > var arrflds=[]; 48c45 < var formhtml="
" + prefix + "

 Google Chart Histogram & Pie Chart XML Data Twinning

 RJM Programming - December, 2023

 Thanks to https://catalog.data.gov/dataset?q=&sort=views_recent+desc and https://data.ny.gov/api/views/d6yy-54nr/rows.xml and https://www.w3schools.com/xml/xpath_examples.asp




  title for
  XML public data items URL
  of position 
  XML XPath Prompted About" + fieldsel + "
  delimits data items regarding position

   

" + suffix + "
"; --- > var formhtml="
" + prefix + "

 Google Chart Histogram & Pie Chart XML Data Twinning

 RJM Programming - December, 2023

 Thanks to https://catalog.data.gov/dataset?q=&sort=views_recent+desc and https://data.ny.gov/api/views/d6yy-54nr/rows.xml and https://www.w3schools.com/xml/xpath_examples.asp




  title for
  XML public data items URL
  of position 
  XML XPath Prompted About" + fieldsel + "
  delimits data items regarding position

   

" + suffix + "
"; 114,115c111,112 < if (path.indexOf(' or self:') != -1) { < ixatatime=eval('' + path.split(' or self:').length); --- > if (path.indexOf(' or ') != -1) { > ixatatime=eval('' + path.split(' or ').length); 173c170 < askp=prompt('Is this type of field "' + arrflds[eval('' + firstset.length)] + '" ' + ('[' + dtarrflds[eval('' + firstset.length)] + ']').replace(/^\[\]$/g, '') + ' data to be output ... ' + result.childNodes[0].nodeValue, result.childNodes[0].nodeValue); --- > askp=prompt('Is this type of field "' + arrflds[eval('' + firstset.length)] + '" data to be output ... ' + result.childNodes[0].nodeValue, result.childNodes[0].nodeValue); 431c428 < askp=prompt('Is this type of field "' + arrflds[eval('' + firstset.length)] + '" ' + ('[' + dtarrflds[eval('' + firstset.length)] + ']').replace(/^\[\]$/g, '') + ' data to be output ... ' + nodes[eval(i + iioff)].childNodes[0].nodeValue, nodes[eval(i + iioff)].childNodes[0].nodeValue); --- > askp=prompt('Is this type of field "' + arrflds[eval('' + firstset.length)] + '" data to be output ... ' + nodes[eval(i + iioff)].childNodes[0].nodeValue, nodes[eval(i + iioff)].childNodes[0].nodeValue); 609d605 < var numtabcols=[], recsare=[], kin=0, okayhere=true, swaponeandzero=false; 613,678d608 < numtabcols=datasofar.split('~')[1].split('~')[0].split(String.fromCharCode(32)); < if (eval('' + numtabcols.length) >= 2) { < if (eval('' + numtabcols.length) > 2) { < for (kin=2; kin= 2) { < //newst=arrorig[0] + '~,' + arrorig[1].split('~')[0].replace(/\ /g, ',') + ']'; < if (swaponeandzero) { < newst='[~' + arrorig[1] + '~,' + arrorig[0].replace('[~','') + ',' + origst.split(arrorig[1] + ' ')[1].split('~')[0].replace(/\ /g, ',') + ']'; < } else { < newst=arrorig[0] + '~,' + origst.replace(arrorig[0] + ' ','').split('~')[0].replace(/\ /g, ',') + ']'; < } < datasofar=datasofar.replace(origst, newst); < document.getElementById('xlvalue').value='Measure'; < document.getElementById('xbvalue').value='Measure'; < if (eval('' + arrorig.length) > 2) { < for (kin=2; kin<=eval('' + arrorig.length); kin++) { < document.getElementById('xlvalue').value+=',Measure'; < document.getElementById('xbvalue').value+=',Measure'; < } < } < } < } < recsare=datasofar.split(',['); < //alert(datasofar.substring(0,40).replace(/\ /g,'x') + ' ... ' + recsare.length); < recsare.sort(); < datasofar=''; < for (kin=1; kin document.getElementById('mybutm').click(); 960d889 < 962d890 < var wc='', little=osel.value.replace(/\=$/g, ''), andw=' and ', dotdot=''; 964,991d891 < if (osel.value.slice(-1) == '=') { < if (document.getElementById('xpath').value.indexOf(']/') == -1) { < wc=prompt('Optionally enter a "where" type of clause (adding to our start for you) ... ' + String.fromCharCode(10) + ' eg. ' + little + '="lookfor"' + String.fromCharCode(10) + ' eg. ' + little + '!="notlookfor"' + String.fromCharCode(10) + ' eg. ' + little + '<998', little); < } else { < little=' and ' + osel.value.replace(/\=$/g, ''); < wc=prompt('Optionally add an "and" subclause to your existant "where" type of clause (adding to our subclause start for you) ... ' + String.fromCharCode(10) + ' eg. ' + little + '="lookfor"' + String.fromCharCode(10) + ' eg. ' + little + '!="notlookfor"' + String.fromCharCode(10) + ' eg. ' + little + '<998', little); < } < if (wc == null) { wc=''; } < if (wc.trim() != '' && wc != little) { < if (document.getElementById('xpath').value.indexOf(']/') == -1) { < document.getElementById('xpath').value=document.getElementById('xpath').value.replace('/' + document.getElementById('xpath').value.split('/')[eval(-1 + document.getElementById('xpath').value.split('/').length)], '[]/' + document.getElementById('xpath').value.split('/')[eval(-1 + document.getElementById('xpath').value.split('/').length)]); < document.getElementById('xpath').value=document.getElementById('xpath').value.replace(']/', wc.replace(/\]$/g,'').replace(/^\[/g,'') + ']/'); < document.getElementById('myfldselopt').innerText=('Optionally display selected field name(s) value(s)').replace('Optionally display selected field name(s) value(s)','Optionally display selected field name(s) [' + document.getElementById('xpath').value.split('[')[1].split(']')[0] + '] value(s)') + ' ...' + document.getElementById('myfldselopt').innerText.split(' ...')[1] < } else { < if (wc.toLowerCase().replace(/^\ or\ /g, ' and ').indexOf(' and ') == 0) { < andw=''; < } else { < document.getElementById('xpath').value=document.getElementById('xpath').value.replace(']/' + document.getElementById('xpath').value.split('/')[eval(-1 + document.getElementById('xpath').value.split('/').length)], andw + ']/' + document.getElementById('xpath').value.split('/')[eval(-1 + document.getElementById('xpath').value.split('/').length)]); < } < document.getElementById('xpath').value=document.getElementById('xpath').value.replace(']/', wc.replace(/\]$/g,'').replace(/^\[/g,'') + ']/'); < document.getElementById('myfldselopt').innerText=('Optionally display selected field name(s) value(s)').replace('Optionally display selected field name(s) value(s)','Optionally display selected field name(s) [' + document.getElementById('xpath').value.split('[')[1].split(']')[0] + '] value(s)') + ' ...' + document.getElementById('myfldselopt').innerText.split(' ...')[1] < } < dotdot=document.getElementById('xtitle').value.replace(document.getElementById('xtitle').value.split(' .. ')[0], ''); < //alert(dotdot + ' ... ' + document.getElementById('xtitle').value); < document.getElementById('xtitle').value=document.getElementById('xtitle').value.split(' -- ')[0].split((' .... ' + (document.getElementById('myfldselopt').innerText + '[]').split('[')[1].split(']')[0] + ' .. ').replace(/^\ \.\.\.\ \ \.\.\ /g, ' .. '))[0] + (' .... ' + (document.getElementById('myfldselopt').innerText + '[]').split('[')[1].split(']')[0] + ' .. ').replace(/^\ \.\.\.\ \ \.\.\ /g, ' .. ') + dotdot; < } < osel.value=''; < } else { 995,996c895 < document.getElementById('myfldselopt').innerText=document.getElementById('myfldselopt').innerText.split(' ...')[0] + ' ... ' + osel.value; < document.getElementById('xtitle').value=document.getElementById('xtitle').value.split(' -- ')[0].split((' .... ' + (document.getElementById('myfldselopt').innerText + '[]').split('[')[1].split(']')[0] + ' .. ').replace(/^\ \.\.\.\ \ \.\.\ /g, ' .. '))[0] + (' .... ' + (document.getElementById('myfldselopt').innerText + '[]').split('[')[1].split(']')[0] + ' .. ').replace(/^\ \.\.\.\ \ \.\.\ /g, ' .. ') + osel.value; --- > document.getElementById('myfldselopt').innerText='Optionally display selected field name(s) value(s) ... ' + osel.value; 998c897 < document.getElementById('xpath').value=document.getElementById('xpath').value.replace(/\]$/g, ' or self::' + osel.value + ']'); --- > document.getElementById('xpath').value=document.getElementById('xpath').value.replace(']', ' or self::' + osel.value + ']'); 1000,1001d898 < dotdot=document.getElementById('xtitle').value.replace(document.getElementById('xtitle').value.split(' .. ')[0], ''); < document.getElementById('xtitle').value=document.getElementById('xtitle').value.split(' -- ')[0].split((' .... ' + (document.getElementById('myfldselopt').innerText + '[]').split('[')[1].split(']')[0] + ' .. ').replace(/^\ \.\.\.\ \ \.\.\ /g, ' .. '))[0] + (' .... ' + (document.getElementById('myfldselopt').innerText + '[]').split('[')[1].split(']')[0] + ' .. ').replace(/^\ \.\.\.\ \ \.\.\ /g, ' .. ') + dotdot + ',' + osel.value; 1004d900 < } 1012d907 < var dtfns=myxhr.responseText.split('"dataTypeName" : "'); 1014d908 < var isokay=eval('' + dtfns.length); 1018d911 < dtarrflds=[]; 1023,1028c916 < if (isokay > eval('' + dtarrflds.length)) { < dtarrflds.push(dtfns[ifns].split('"')[0]); < } else { < dtarrflds.push(''); < } < fieldsel=fieldsel.replace('', ''); 1091c979 < --- > 1101c989 < --- >