Re: Compiler Errors
- From: Santhosh Edukulla <santhosh edukulla gmail com>
- To: Kjell Ahlstedt <kjell ahlstedt bredband net>
- Cc: libxmlplusplus-list gnome org
- Subject: Re: Compiler Errors
- Date: Fri, 1 Jun 2012 23:48:11 +0530
Thanks. How do we save the nodes written using add_child() and
add_child_text() etc to disk?
Some thing like save xml.
Santhosh
On 6/1/12, Kjell Ahlstedt <kjell ahlstedt bredband net> wrote:
> When I run your example, it crashes on
> txt_node = node_element->get_child_text();
> because node_element == NULL.
>
> mRNode has 5 children:
> 1. a TextNode containing a linefeed ("\n")
> 2. an f1 Element node
> 3. a TextNode containing a linefeed
> 4. an f2 Element node
> 5. a TextNode containing a linefeed
>
> If you are only interested in f1 nodes, change
> Node::NodeList temp_lst = mRNode->get_children();
> to
> Node::NodeList temp_lst = mRNode->get_children("f1");
> or make more tests when you loop over all the children.
>
> Kjell
>
> 2012-06-01 12:44, Santhosh Edukulla skrev:
>> Team,
>>
>> 1/ I have a file with few nodes as below. Iam using the code mentioned
>> below to parse this file. Everytime, i run with hundreds of changes
>> but in vain the result is same i.e., it gets crashed. May i know as
>> what iam doing wrong? I have given up after 3 hours of spending time
>> on this. Also, documentation wise and help wise, it need some
>> improvement i believe. I wanted to retrieve content of a given node.
>> This is very easy with other dom parsers compared to here.
>>
>> It crashes at the below statement.
>> mConfigFilePath = txt_node->get_content();
>>
>>
>> Some how
>>
>> <f>
>> <f1>abc</f1>
>> <f2>abc</f2>
>> </f>
>>
>>
>>
>> string temp_str,temp_name;
>> Element* node_element;
>> TextNode *txt_node,*txt_node1;
>> DomParser parser( "abc.xml",false );
>> if( parser )
>> {
>> cout<< "SUCCESS : FILE PARSING IS
>> SUCCESSFUL: "<< endl ;
>> mRNode =
>> parser.get_document()->get_root_node();
>> }
>> /*Check if op file is able to be parsed*/
>> if( mRNode != NULL )
>>
>> Node::NodeList temp_lst = mRNode->get_children();
>> for( Node::NodeList::iterator temp_node =
>> temp_lst.begin(); temp_node != temp_lst.end(); ++temp_node )
>> {
>> temp_str = (*temp_node)->get_name();
>> node_element =
>> dynamic_cast<Element*>(*temp_node);
>> txt_node = node_element->get_child_text();
>>
>> if ( temp_str == "config_file" )
>> {
>> mConfigFilePath =
>> txt_node->get_content();
>> }
>>
>> 2/ Also, I believe, it was made way too complicated i believe. I have
>> a node f1, i just wanted to retrieve its content. Instead we made a
>> TextNode,Element Node etc.
>> This is typically different from other parsers available under c#.net and
>> java.
>>
>> Santhosh
>>
>>
>
>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]