[Dev] Jaggery - How to parse an XML, with an element named return

2014-04-06 Thread Dilini Muthumala
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

2014-04-06 Thread Dilini Muthumala
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

2014-04-06 Thread Rajith Vitharana
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

2014-04-06 Thread Dilini Muthumala
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