xml - How to return array with XPath? -


i wondering if xpath return array of value.

i have someting :

<cities>     <city>paris</city>     <city>lyon</city>     <city>marseille</city> </cities> 

and i'd array of form ['paris', 'lyon', 'marseille'].

i using xpath unix utility.

any idea ?

in addition post-processing output of:

xpath -q -e '//city/text()' inputfile 

which is:

paris lyon marseille 

in number of ways, including:

xpath -q -e '//city/text()' inputfile |     awk 'begin {sq = "\047"; ofs = sq "," sq}          {a[$1] = nr}          end {              printf "[" sq;               (i in a) {                  printf "%s%s", d, i; d = ofs};              print sq "]"          }' 

which gives output:

['lyon','marseille','paris'] 

you can use modified version of xpath. since it's simple perl script, modified have more control on formatting of output. version, can do:

xpath -q -b "[" -p "'" -i "," -s "'" -a "]"$'\n' -e '//city/text()' 

to desired output. here usage message:

usage: xpath [options] -e query [-e query...] [filename...]          if no filenames given, supply xml on stdin.         must provide @ least 1 query. each supplementary         query done in order, previous query giving         context of next one.          options:          -q quiet        output resulting path         -b before       use before instead of nothing.         -p prefix       use prefix instead of nothing.         -s suffix       use suffix instead of linefeed.         -i infix        use infix instead of nothing.         -a after        use after instead of nothing. 

you can download version here.


Comments

Popular posts from this blog

linux - Mailx and Gmail nss config dir -

c# - Is it possible to remove an existing registration from Autofac container builder? -

php - Mysql PK and FK char(36) vs int(10) -