xpath - How to add text before values in xml? -
here test.xml file:
<?xml version="1.0"?> <path> <dir name="directory"> <file name="file1"/> <file name="file2"/> </dir> </path>
now can add together text after values:
xmlstarlet ed -s "//file[@name]/@name" -t text -n "@name" -v "_copy_" test.xml
result:
… <file name="file1_copy_"/> <file name="file2_copy_"/> …
how can add together text before values?
… <file name="_copy_file1"/> <file name="_copy_file2"/> …
according command line help, xmlstarlet ed
, can utilize update -u
alternative , include replacement xpath expression -x
:
xmlstarlet ed -u <xpath> -x <xpath>
in replacement look can utilize xpath concat()
function generate string replace attribute. look concat('_copy_',.)
concatenate string '_copy_'
before current node, attribute selecting. look should be:
xmlstarlet ed -u "//file[@name]/@name" -x "concat('_copy_',.)" test.xml
xml xpath xmlstarlet
No comments:
Post a Comment