Re: Compiler Errors



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]