Hi! I need to trim the text node of a specific element node in SLAX. All other elements should remain as in the original node-set. At the moment, I do it like this:
$ cat trim_node-set.slax version 1.2; main <top> { var $alphabet := { <letters> { <consonants> { <b pos="2"> "bbb "; <c pos="3"> "ccc "; } <consonants> { <d pos="4"> "ddd "; <f pos="5"> "fff "; } } } var $alphabet_trimmed := { <letters> { for-each ( $alphabet/letters/consonants ) { <consonants> { for-each ( * ) { if ( name() == "d" ) { <d pos="4"> translate(.," ", ""); } else { copy-of .; } } } } } } copy-of $alphabet_trimmed; } $ As seen above, if element node is <d>, then space characters are removed. Output of this script can be seen below: $ slaxproc -g -E trim_node-set.slax <?xml version="1.0"?> <top> <letters> <consonants> <b pos="2">bbb </b> <c pos="3">ccc </c> </consonants> <consonants> <d pos="4">ddd</d> <f pos="5">fff </f> </consonants> </letters> </top> $ Is there a more elegant way to do this? In addition, if I do the same for rpc-reply, then for some reason, every element node gets the 'xmlns:junos="http://xml.juniper.net/junos/*/junos"' attribute node. Just out of curiosity, why does this happen? As seen in the output above, this does not happen in slaxproc, i.e <b>, <c> and <f> do not get any attribute nodes added. thanks, Martin _______________________________________________ juniper-nsp mailing list juniper-nsp@puck.nether.net https://puck.nether.net/mailman/listinfo/juniper-nsp