I'm trying to add a new <student> node with attibute id="1003" after the <student> element with id='1001'. Here is the xml structure:
<?xml version="1.0" encoding="utf-8" ?> <University> <students> <student id="1000"/> <student id="1001"/> <student id="1002"/> </students> </University>
I'm using XML::LibXML module and wrote the following snippet:
#!/usr/bin/perl use XML::LibXML; $parser = XML::LibXML->new(); $doc = $parser->parse_file('student.xml'); $query = '//student'; for my $ele ($doc->findnodes($query)){ my $attr_text=$ele->getAttribute('id'); if($attr_text eq '1001'){ $new_ele=$doc->createElement('student'); $new_ele->setAttribute('id','1003'); $doc->insertAfter($new_ele,$ele); last; } } open(TESTFILE,">result.xml"); print TESTFILE $doc->toString; close(TESTFILE);
But I'm getting the following run-time error:
NOT_FOUND_ERRI'm still a novice in perl.Can you please explain the error message and tell me how to resolve it?
In reply to NOT_FOUND_ERR in insertAfter() by kingsaint
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |