[Dev] Jaggery - How to parse an XML, with an element named return
Hi all, I have an XML, with an element named as return. I want to parse this XML and extract the value of this return element (i.e. 5). Below is the jaggery snippet I'm using to do this. var order = new XML(ns:getStockQuoteResponse xmlns:ns= http://service.axis2.wso2.com; ns:return5/ns:return /ns:getStockQuoteResponse); var ns=http://service.axis2.wso2.com;; log.info(order.*::return.text()); This gives an error. Please see [1] for error log. I tried with replacing return with temp and did the same parsing, and it worked. var order = new XML(ns:getStockQuoteResponse xmlns:ns= http://service.axis2.wso2.com; ns:temp5/ns:temp /ns:getStockQuoteResponse); var ns=http://service.axis2.wso2.com;; log.info(order.*::temp.text()); Isn't there any other way to parse this XML (with return element)? [1] js: /portal/apis/flot-data-files/cep-data.jag, line 78: missing name after :: operator js: log.info(_+order.*::return.text()+_); js: ^ [2014-04-06 15:16:41,430] ERROR - {RhinoEngine} org.jaggeryjs.scriptengine.exceptions.ScriptException: org.mozilla.javascript.EvaluatorException: Compilation produced 1 syntax errors. (/portal/apis/flot-data-files/cep-data.jag#1) [2014-04-06 15:16:41,430] ERROR - {WebAppManager} org.jaggeryjs.scriptengine.exceptions.ScriptException: org.mozilla.javascript.EvaluatorException: Compilation produced 1 syntax errors. (/portal/apis/flot-data-files/cep-data.jag#1) org.jaggeryjs.scriptengine.exceptions.ScriptException: org.jaggeryjs.scriptengine.exceptions.ScriptException: org.mozilla.javascript.EvaluatorException: Compilation produced 1 syntax errors. (/portal/apis/flot-data-files/cep-data.jag#1) at org.jaggeryjs.scriptengine.engine.RhinoEngine.execScript(RhinoEngine.java:575) at org.jaggeryjs.scriptengine.engine.RhinoEngine.exec(RhinoEngine.java:273) at org.jaggeryjs.jaggery.core.manager.WebAppManager.execute(WebAppManager.java:432) at org.jaggeryjs.jaggery.core.JaggeryServlet.doGet(JaggeryServlet.java:24) at javax.servlet.http.HttpServlet.service(HttpServlet.java:735) at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:379) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339) at org.jaggeryjs.jaggery.core.JaggeryFilter.doFilter(JaggeryFilter.java:21) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) at org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(CompositeValve.java:178) at org.wso2.carbon.tomcat.ext.valves.CarbonTomcatValve$1.invoke(CarbonTomcatValve.java:47) at org.wso2.carbon.webapp.mgt.TenantLazyLoaderValve.invoke(TenantLazyLoaderValve.java:56) at org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(TomcatValveContainer.java:47) at org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:141) at org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:156) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936) at org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:52) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1653) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) Caused by: org.jaggeryjs.scriptengine.exceptions.ScriptException: org.mozilla.javascript.EvaluatorException: Compilation produced 1 syntax errors.
Re: [Dev] Jaggery - How to parse an XML, with an element named return
Hi Rajith, Thanks a lot. That works. Hi all, Problem solved, but wondering how that works though..From [2], found the below fact: [foo] JavaScript takes the string foo and converts it to an array with one element, foo: [2] http://stackoverflow.com/a/1629610/1033469 Regards, Dilini On Sun, Apr 6, 2014 at 4:22 PM, Rajith Vitharana raji...@wso2.com wrote: Hi Dilini, try this - log.info(order.*::[return].text()); Thanks, On Sun, Apr 6, 2014 at 3:31 PM, Dilini Muthumala dil...@wso2.com wrote: Hi all, I have an XML, with an element named as return. I want to parse this XML and extract the value of this return element (i.e. 5). Below is the jaggery snippet I'm using to do this. var order = new XML(ns:getStockQuoteResponse xmlns:ns= http://service.axis2.wso2.com; ns:return5/ns:return /ns:getStockQuoteResponse); var ns=http://service.axis2.wso2.com;; log.info(order.*::return.text()); This gives an error. Please see [1] for error log. I tried with replacing return with temp and did the same parsing, and it worked. var order = new XML(ns:getStockQuoteResponse xmlns:ns= http://service.axis2.wso2.com; ns:temp5/ns:temp /ns:getStockQuoteResponse); var ns=http://service.axis2.wso2.com;; log.info(order.*::temp.text()); Isn't there any other way to parse this XML (with return element)? [1] js: /portal/apis/flot-data-files/cep-data.jag, line 78: missing name after :: operator js: log.info(_+order.*::return.text()+_); js: ^ [2014-04-06 15:16:41,430] ERROR - {RhinoEngine} org.jaggeryjs.scriptengine.exceptions.ScriptException: org.mozilla.javascript.EvaluatorException: Compilation produced 1 syntax errors. (/portal/apis/flot-data-files/cep-data.jag#1) [2014-04-06 15:16:41,430] ERROR - {WebAppManager} org.jaggeryjs.scriptengine.exceptions.ScriptException: org.mozilla.javascript.EvaluatorException: Compilation produced 1 syntax errors. (/portal/apis/flot-data-files/cep-data.jag#1) org.jaggeryjs.scriptengine.exceptions.ScriptException: org.jaggeryjs.scriptengine.exceptions.ScriptException: org.mozilla.javascript.EvaluatorException: Compilation produced 1 syntax errors. (/portal/apis/flot-data-files/cep-data.jag#1) at org.jaggeryjs.scriptengine.engine.RhinoEngine.execScript(RhinoEngine.java:575) at org.jaggeryjs.scriptengine.engine.RhinoEngine.exec(RhinoEngine.java:273) at org.jaggeryjs.jaggery.core.manager.WebAppManager.execute(WebAppManager.java:432) at org.jaggeryjs.jaggery.core.JaggeryServlet.doGet(JaggeryServlet.java:24) at javax.servlet.http.HttpServlet.service(HttpServlet.java:735) at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:379) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339) at org.jaggeryjs.jaggery.core.JaggeryFilter.doFilter(JaggeryFilter.java:21) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) at org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(CompositeValve.java:178) at org.wso2.carbon.tomcat.ext.valves.CarbonTomcatValve$1.invoke(CarbonTomcatValve.java:47) at org.wso2.carbon.webapp.mgt.TenantLazyLoaderValve.invoke(TenantLazyLoaderValve.java:56) at org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(TomcatValveContainer.java:47) at org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:141) at org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:156) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936) at org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:52) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) at
Re: [Dev] Jaggery - How to parse an XML, with an element named return
Hi Dilini, its about property accessors of E4X. see section 11.2.1 Property Accessors of the E4X spec in [1] [1] - http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-357.pdf Thanks, On Sun, Apr 6, 2014 at 5:42 PM, Dilini Muthumala dil...@wso2.com wrote: Hi Rajith, Thanks a lot. That works. Hi all, Problem solved, but wondering how that works though..From [2], found the below fact: [foo] JavaScript takes the string foo and converts it to an array with one element, foo: [2] http://stackoverflow.com/a/1629610/1033469 Regards, Dilini On Sun, Apr 6, 2014 at 4:22 PM, Rajith Vitharana raji...@wso2.com wrote: Hi Dilini, try this - log.info(order.*::[return].text()); Thanks, On Sun, Apr 6, 2014 at 3:31 PM, Dilini Muthumala dil...@wso2.com wrote: Hi all, I have an XML, with an element named as return. I want to parse this XML and extract the value of this return element (i.e. 5). Below is the jaggery snippet I'm using to do this. var order = new XML(ns:getStockQuoteResponse xmlns:ns= http://service.axis2.wso2.com; ns:return5/ns:return /ns:getStockQuoteResponse); var ns=http://service.axis2.wso2.com;; log.info(order.*::return.text()); This gives an error. Please see [1] for error log. I tried with replacing return with temp and did the same parsing, and it worked. var order = new XML(ns:getStockQuoteResponse xmlns:ns= http://service.axis2.wso2.com; ns:temp5/ns:temp /ns:getStockQuoteResponse); var ns=http://service.axis2.wso2.com;; log.info(order.*::temp.text()); Isn't there any other way to parse this XML (with return element)? [1] js: /portal/apis/flot-data-files/cep-data.jag, line 78: missing name after :: operator js: log.info(_+order.*::return.text()+_); js: ^ [2014-04-06 15:16:41,430] ERROR - {RhinoEngine} org.jaggeryjs.scriptengine.exceptions.ScriptException: org.mozilla.javascript.EvaluatorException: Compilation produced 1 syntax errors. (/portal/apis/flot-data-files/cep-data.jag#1) [2014-04-06 15:16:41,430] ERROR - {WebAppManager} org.jaggeryjs.scriptengine.exceptions.ScriptException: org.mozilla.javascript.EvaluatorException: Compilation produced 1 syntax errors. (/portal/apis/flot-data-files/cep-data.jag#1) org.jaggeryjs.scriptengine.exceptions.ScriptException: org.jaggeryjs.scriptengine.exceptions.ScriptException: org.mozilla.javascript.EvaluatorException: Compilation produced 1 syntax errors. (/portal/apis/flot-data-files/cep-data.jag#1) at org.jaggeryjs.scriptengine.engine.RhinoEngine.execScript(RhinoEngine.java:575) at org.jaggeryjs.scriptengine.engine.RhinoEngine.exec(RhinoEngine.java:273) at org.jaggeryjs.jaggery.core.manager.WebAppManager.execute(WebAppManager.java:432) at org.jaggeryjs.jaggery.core.JaggeryServlet.doGet(JaggeryServlet.java:24) at javax.servlet.http.HttpServlet.service(HttpServlet.java:735) at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:379) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339) at org.jaggeryjs.jaggery.core.JaggeryFilter.doFilter(JaggeryFilter.java:21) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) at org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(CompositeValve.java:178) at org.wso2.carbon.tomcat.ext.valves.CarbonTomcatValve$1.invoke(CarbonTomcatValve.java:47) at org.wso2.carbon.webapp.mgt.TenantLazyLoaderValve.invoke(TenantLazyLoaderValve.java:56) at org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(TomcatValveContainer.java:47) at org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:141) at org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:156) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936) at
Re: [Dev] Jaggery - How to parse an XML, with an element named return
Hi Rajith, Got it. Thanks a lot for the helpful reply. Cheers, Dilini On Sun, Apr 6, 2014 at 6:49 PM, Rajith Vitharana raji...@wso2.com wrote: Hi Dilini, its about property accessors of E4X. see section 11.2.1 Property Accessors of the E4X spec in [1] [1] - http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-357.pdf Thanks, On Sun, Apr 6, 2014 at 5:42 PM, Dilini Muthumala dil...@wso2.com wrote: Hi Rajith, Thanks a lot. That works. Hi all, Problem solved, but wondering how that works though..From [2], found the below fact: [foo] JavaScript takes the string foo and converts it to an array with one element, foo: [2] http://stackoverflow.com/a/1629610/1033469 Regards, Dilini On Sun, Apr 6, 2014 at 4:22 PM, Rajith Vitharana raji...@wso2.comwrote: Hi Dilini, try this - log.info(order.*::[return].text()); Thanks, On Sun, Apr 6, 2014 at 3:31 PM, Dilini Muthumala dil...@wso2.comwrote: Hi all, I have an XML, with an element named as return. I want to parse this XML and extract the value of this return element (i.e. 5). Below is the jaggery snippet I'm using to do this. var order = new XML(ns:getStockQuoteResponse xmlns:ns= http://service.axis2.wso2.com; ns:return5/ns:return /ns:getStockQuoteResponse); var ns=http://service.axis2.wso2.com;; log.info(order.*::return.text()); This gives an error. Please see [1] for error log. I tried with replacing return with temp and did the same parsing, and it worked. var order = new XML(ns:getStockQuoteResponse xmlns:ns= http://service.axis2.wso2.com; ns:temp5/ns:temp /ns:getStockQuoteResponse); var ns=http://service.axis2.wso2.com;; log.info(order.*::temp.text()); Isn't there any other way to parse this XML (with return element)? [1] js: /portal/apis/flot-data-files/cep-data.jag, line 78: missing name after :: operator js: log.info(_+order.*::return.text()+_); js: ^ [2014-04-06 15:16:41,430] ERROR - {RhinoEngine} org.jaggeryjs.scriptengine.exceptions.ScriptException: org.mozilla.javascript.EvaluatorException: Compilation produced 1 syntax errors. (/portal/apis/flot-data-files/cep-data.jag#1) [2014-04-06 15:16:41,430] ERROR - {WebAppManager} org.jaggeryjs.scriptengine.exceptions.ScriptException: org.mozilla.javascript.EvaluatorException: Compilation produced 1 syntax errors. (/portal/apis/flot-data-files/cep-data.jag#1) org.jaggeryjs.scriptengine.exceptions.ScriptException: org.jaggeryjs.scriptengine.exceptions.ScriptException: org.mozilla.javascript.EvaluatorException: Compilation produced 1 syntax errors. (/portal/apis/flot-data-files/cep-data.jag#1) at org.jaggeryjs.scriptengine.engine.RhinoEngine.execScript(RhinoEngine.java:575) at org.jaggeryjs.scriptengine.engine.RhinoEngine.exec(RhinoEngine.java:273) at org.jaggeryjs.jaggery.core.manager.WebAppManager.execute(WebAppManager.java:432) at org.jaggeryjs.jaggery.core.JaggeryServlet.doGet(JaggeryServlet.java:24) at javax.servlet.http.HttpServlet.service(HttpServlet.java:735) at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:379) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339) at org.jaggeryjs.jaggery.core.JaggeryFilter.doFilter(JaggeryFilter.java:21) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) at org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(CompositeValve.java:178) at org.wso2.carbon.tomcat.ext.valves.CarbonTomcatValve$1.invoke(CarbonTomcatValve.java:47) at org.wso2.carbon.webapp.mgt.TenantLazyLoaderValve.invoke(TenantLazyLoaderValve.java:56) at org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(TomcatValveContainer.java:47) at org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:141) at