<div dir="auto">I may throw a few more \\ in for good measure.  Idk.</div><div class="gmail_extra"><br><div class="gmail_quote">On Feb 27, 2017 9:09 PM,  <<a href="mailto:yottzumm@gmail.com">yottzumm@gmail.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div lang="EN-US" link="blue" vlink="#954F72"><div class="m_5651566873279945384WordSection1"><p class="MsoNormal">I was wrong.  It was in my serverside code.  So now, the serverside code looks like this:</p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">        X3DJSONLD.<wbr>setCDATACreateFunction(<wbr>function(document, element, str) {</p><p class="MsoNormal">                // for script nodes</p><p class="MsoNormal">                var child = document.createCDATASection(<wbr>str.replace(/\n'/g, "\\n'"));</p><p class="MsoNormal">                element.appendChild(child);</p><p class="MsoNormal">        });</p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">FYI for those creating CDATA sections from JSON on the serverside.</p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">John</p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Sent from <a href="https://go.microsoft.com/fwlink/?LinkId=550986" target="_blank">Mail</a> for Windows 10</p><p class="MsoNormal"><u></u> <u></u></p><div style="border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0in 0in 0in"><p class="MsoNormal" style="border:none;padding:0in"><b>From: </b><a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a><br><b>Sent: </b>Monday, February 27, 2017 8:46 PM<br><b>To: </b><a href="mailto:andreasplesch@gmail.com" target="_blank">Andreas Plesch</a>; <a href="mailto:x3d-public@web3d.org" target="_blank">X3D Graphics public mailing list</a><br><b>Subject: </b>flaw in CDATACreateFunction in X3DJSONLD (from Andreas Plesch)</p></div><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">function CDATACreateFunction(document, element, str) {<u></u><u></u></p><p class="MsoNormal">        var domParser = new DOMParser();<u></u><u></u></p><p class="MsoNormal">        var cdataStr = '<script> <![CDATA[ ' + str + ' ]]> </script>'; // has to be wrapped into an element<u></u><u></u></p><p class="MsoNormal">        var scriptDoc = domParser .parseFromString (cdataStr, 'application/xml');<u></u><u></u></p><p class="MsoNormal">        var cdata = scriptDoc .children[0] .childNodes[1]; // space after script is childNode[0]<u></u><u></u></p><p class="MsoNormal">        element .appendChild(cdata);<u></u><u></u></p><p class="MsoNormal">}<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">If calling CDATACreateFunction(document, element, object[key].join("\r\n")+"\r\<wbr>n");  like this, you may run into some difficulty when the DOM gets written out to XML or perhaps placed in a web page.  Namly, this:<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">"#sourceText":[<u></u><u></u></p><p class="MsoNormal">"ecmascript:",<u></u><u></u></p><p class="MsoNormal">"function set_position (value)",<u></u><u></u></p><p class="MsoNormal">"{",<u></u><u></u></p><p class="MsoNormal">"\tholdPosition=value;",<u></u><u></u></p><p class="MsoNormal">"}",<u></u><u></u></p><p class="MsoNormal">"function set_rotation (value)",<u></u><u></u></p><p class="MsoNormal">"{",<u></u><u></u></p><p class="MsoNormal">"\tBrowser.print ('Internal position=' + holdPosition.toString() + ' , internal rotation=' + value.toString() + '\n');",<u></u><u></u></p><p class="MsoNormal">"}"<u></u><u></u></p><p class="MsoNormal">]<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Gets translated into this in XML<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"><![CDATA[ecmascript:<u></u><u></u></p><p class="MsoNormal">function set_position (value)<u></u><u></u></p><p class="MsoNormal">{<u></u><u></u></p><p class="MsoNormal">        holdPosition=value;<u></u><u></u></p><p class="MsoNormal">}<u></u><u></u></p><p class="MsoNormal">function set_rotation (value)<u></u><u></u></p><p class="MsoNormal">{<u></u><u></u></p><p class="MsoNormal">        Browser.print ('Internal position=' + holdPosition.toString() + ' , internal rotation=' + value.toString() + '<u></u><u></u></p><p class="MsoNormal">');<u></u><u></u></p><p class="MsoNormal">}<u></u><u></u></p><p class="MsoNormal">]]><u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Note that the \n got converted into a newline.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">I am working on this issue.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">John<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"><u></u> <u></u></p></div></div></blockquote></div></div>