Have a look at [1]. It contains axiom test programs. https://svn.apache.org/repos/asf/webservices/axis2/trunk/c/axiom/test
-Manjula. On Tue, 2008-11-04 at 18:09 +0530, ramesh Gopal wrote: > Hi Ssupun, > > Is this a better way as per coding standards. > Or, the methodology I have been using is more effective. > > In broader terms , > > Sample xml > ---------- > <operation> > <in1>1</in1> > <in2>2</in2> > </operation> > > I will first need to get the parent element, and then all the children and > loop thru it. > > axiom_element_get_child_elements creates a list. And what does > axiom_child_element_iterator_has_next do ? > > Keeping the above mentioned xml, if you can tell me in a few lines of code, > which will prevent me from running into the "Segmentation issue", it would be > great. > > Thanks > Ramesh. > > > --- On Tue, 4/11/08, Supun Kamburugamuva <[EMAIL PROTECTED]> wrote: > > > From: Supun Kamburugamuva <[EMAIL PROTECTED]> > > Subject: Re: Some quick Axis2C help required > > To: "Apache AXIS C User List" <axis-c-user@ws.apache.org>, [EMAIL PROTECTED] > > Date: Tuesday, 4 November, 2008, 4:47 PM > > Here is a code sample for using the child element iterator. > > You can find > > this kind of code all over the axis2/C source. > > > > axiom_child_element_iterator_t *ci = NULL; > > > > if ((ci = axiom_element_get_child_elements(element, env, > > node)) != NULL) > > { > > axiom_element_t *ce = NULL; > > axiom_node_t *cn = NULL; > > while(AXIS2_TRUE == > > axiom_child_element_iterator_has_next(ci, env)) > > { > > cn = axiom_child_element_iterator_next(ci, > > env); > > /* chile element do what ever you want */ > > ce = axiom_node_get_data_element(cn, env); > > > > } > > } > > > > Supun. > > > > On Tue, Nov 4, 2008 at 3:29 PM, ramesh Gopal > > <[EMAIL PROTECTED]>wrote: > > > > > > > > > > > Hi Shankar, > > > > > > Could you give me a better solution which achieves > > this ... > > > > > > Basically, I want to read all the child nodes (for a > > node) and get the > > > values. > > > > > > I have tried using axiom_element_get_child_elements or > > > axiom_element_get_children ... but in vain, simply > > because I do not know how > > > to use them .. > > > > > > I have sent you the portion of my code, pls give me > > your suggestions. > > > > > > Rgds, > > > Ramesh. > > > > > > > > > --- On Tue, 4/11/08, Uthaiyashankar > > <[EMAIL PROTECTED]> wrote: > > > > > > > From: Uthaiyashankar <[EMAIL PROTECTED]> > > > > Subject: Re: Some quick Axis2C help required > > > > To: "Apache AXIS C User List" > > <axis-c-user@ws.apache.org> > > > > Date: Tuesday, 4 November, 2008, 1:09 PM > > > > Hi Ramesh, > > > > > > > > See the comments. > > > > > > > > > > > > > Sample xml request: > > > > > ------------------- > > > > > > > > > > <operation> > > > > > <in1>1</in1> > > > > > <in2>2</in2> > > > > > </operation> > > > > > > > > > > My sample code : > > > > > ---------------- > > > > > > > > > > if (node) { --- This is the entire xml > > > > > parent_node =3D > > axiom_node_get_first_element(node, > > > > env); --- Here, I though= > > > > > I will get operation as the first element, > > but I get > > > > <in1>1</in1> ... > > > > > > > > > > > > > You have to do > > "axiom_node_get_data_element" to > > > > get <operation> as the > > > > element. When you do > > axiom_node_get_first_element, it will > > > > return first > > > > child whose type is om element. > > > > > > > > > > > > > If this is wrong pls point out the exact > > function that > > > > I ought to be using. > > > > > > > > > > { > > > > > if (!parent_node) > > > > > { // throw error; > > > > > } > > > > > request_node =3D > > > > axiom_node_get_first_child(parent_node, env); > > > > > if (!request_node) > > > > > { // throw error; > > > > > } > > > > > if (request_node && > > > > axiom_node_get_node_type(request_node, env) > > =3D=3D AXIO= > > > > > M_TEXT) > > > > > { // Get value of TEXT --- Here we get value > > > > "1" > > > > > } > > > > > } > > > > > sibling_node =3D > > > > axiom_node_get_next_sibling(parent_node, env); > > --- Here I = > > > > > get <in2>2</in2>, which is a > > sibling to > > > > <in1>1</in1> > > > > > > > > > > if (!sibling_node) { // throw error ; } > > > > > request_node =3D > > > > axiom_node_get_first_child(sibling_node, env); > > > > > if (!request_node) > > > > > { // throw error; > > > > > } > > > > > if (request_node && > > > > axiom_node_get_node_type(request_node, env) > > =3D=3D AXIO= > > > > > M_TEXT) > > > > > { // Get value of TEXT --- Here we get value > > > > "2" > > > > > }=20 > > > > > } > > > > > > > > > > > > > > > I am running into some issues > > > > > > > > > > > > > First error is caused by > > axiom_node_free_detached_subtree, > > > > which I > > > > could not find in the code you have sent. Can you > > send the > > > > correct code > > > > which causes these errors? > > > > > > > > Regards, > > > > Shankar > > > > > > > > > > > > > > Below is some error which I get : > > > > > --------------------------------- > > > > > > > > > > Program received signal SIGSEGV, > > Segmentation fault. > > > > > [Switching to Thread -1208951888 (LWP > > 19071)] > > > > > axiom_node_free_detached_subtree > > (om_node=3D0x8927758, > > > > env=3D0x8920e60) > > > > > at om_node.c:105 > > > > > 105 next_sibling =3D > > child_node->next_sibling; > > > > > > > > > > #0 axiom_node_free_detached_subtree > > > > (om_node=3D0x81d9758, env=3D0x81d2e60) > > > > > at om_node.c:105 > > > > > #1 0x006005a2 in > > axiom_node_free_detached_subtree > > > > (om_node=3D0x81d96d0,=20 > > > > > env=3D0x81d2e60) at om_node.c:106 > > > > > #2 0x006005a2 in > > axiom_node_free_detached_subtree > > > > (om_node=3D0x81d9528,=20 > > > > > env=3D0x81d2e60) at om_node.c:106 > > > > > #3 0x006005a2 in > > axiom_node_free_detached_subtree > > > > (om_node=3D0x81d9478,=20 > > > > > env=3D0x81d2e60) at om_node.c:106 > > > > > #4 0x006005a2 in > > axiom_node_free_detached_subtree > > > > (om_node=3D0x81d9198,=20 > > > > > env=3D0x81d2e60) at om_node.c:106 > > > > > #5 0x0060026e in axiom_document_free > > > > (document=3D0x81d50b8, env=3D0x81d2e60= > > > > > ) > > > > > at om_document.c:87 > > > > > #6 0x00607b6e in axiom_stax_builder_free > > > > (om_builder=3D0x81d5010, env=3D0x8= > > > > > 1d2e60) > > > > > at om_stax_builder.c:897 > > > > > #7 0x0060e7ad in axiom_soap_builder_free > > > > (soap_builder=3D0x81d50d8,=20 > > > > > env=3D0x81d2e60) at soap_builder.c:188 > > > > > #8 0x0060dd25 in axiom_soap_envelope_free > > > > (soap_envelope=3D0x81d9338,=20 > > > > > env=3D0x81d2e60) at soap_envelope.c:178 > > > > > #9 0x0806b2be in axis2_msg_ctx_free > > > > (msg_ctx=3D0x81d45f8, env=3D0x81d2e60) > > > > > at msg_ctx.c:410 > > > > > #10 0x00c60b43 in > > axis2_http_worker_process_request > > > > (http_worker=3D0x81d0d3= > > > > > 8,=20 > > > > > env=3D0x81d2e60, svr_conn=3D0x81d2e80, > > > > simple_request=3D0x81d2f48) > > > > > at http_worker.c:1952 > > > > > > > > > > Program received signal SIGSEGV, > > Segmentation fault. > > > > > [Switching to Thread -1208378448 (LWP > > 18971)] > > > > > axiom_node_create (env=3D0x20202020) at > > om_node.c:75 > > > > > 75 node =3D (axiom_node_t *) > > > > AXIS2_MALLOC(env->allocator, > > sizeof(axiom_node= > > > > > _t)); > > > > > > > > > > #0 axiom_node_create (env=3D0x20202020) at > > > > om_node.c:75 > > > > > #1 0x00f250fa in axiom_element_create > > > > (env=3D0x20202020, parent=3D0x0,=20 > > > > > localname=3D0x4e9f8c "outparam0", > > ns=3D0x0, > > > > node=3D0xb7f98f30) at om_elemen= > > > > > t.c:78 > > > > > #2 0x004e9a0f in build_res_text_response () > > > > > from > > ..//services/ws_test_demo/libws_test_demo.so > > > > > #3 0x004e99ac in > > axis2_skel_ws_test_demo_test_demo () > > > > > from > > ..//services/ws_test_demo/libws_test_demo.so > > > > > #4 0x20202020 in ?? () > > > > > #5 0x20202020 in ?? () > > > > > #6 0x20202020 in ?? () > > > > > #7 0xb7f99000 in ?? () > > > > > #8 0x004e9b62 in > > axis2_svc_skel_ws_test_demo_invoke () > > > > > from > > ..//services/ws_test_demo/libws_test_demo.so > > > > > > > > > > > > > > > Pls let me know, if I am missing something > > ... > > > > > > > > > > Also, pls let me know if you need more info. > > > > > I need some help on an urgent basis. > > > > > > > > > > Rgds, > > > > > Ramesh > > > > > > > > > > > > > > > Add more friends to your messenger and > > enjoy! Go > > > > to http://messenger.yahoo.com/invite/ > > > > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > > To unsubscribe, e-mail: > > > > [EMAIL PROTECTED] > > > > > For additional commands, e-mail: > > > > [EMAIL PROTECTED] > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > S.Uthaiyashankar > > > > Software Architect > > > > WSO2 Inc. > > > > http://wso2.com/ - "The Open Source SOA > > Company" > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > To unsubscribe, e-mail: > > > > [EMAIL PROTECTED] > > > > For additional commands, e-mail: > > > > [EMAIL PROTECTED] > > > > > > > > > Share files, take polls, and make new friends - > > all under one roof. > > > Go to http://in.promos.yahoo.com/groups/ > > > > > > > > > > > --------------------------------------------------------------------- > > > To unsubscribe, e-mail: > > [EMAIL PROTECTED] > > > For additional commands, e-mail: > > [EMAIL PROTECTED] > > > > > > > > > > > > -- > > Software Engineer, WSO2 Inc > > http://wso2.org > > Web Services with Axis2/C http://wsaxc.blospot.com > > > Get rid of Add-Ons in your email ID. Get [EMAIL PROTECTED] Sign up now! > http://in.promos.yahoo.com/address > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]