You should try these tools :
xmlstarlet(xmlstarlet page) : can edit, select, transform… Not installed by default, xpath1xmllint(man xmllint): often installed by default withlibxml2-utils, xpath1 (check my wrapper to have--xpathswitch on very old releases and newlines delimited output (v < 2.9.9)). Can be used as interactive shell with the--shellswitch.xpath: installed via perl’s moduleXML::Xpath, xpath1xml_grep: installed via perl’s moduleXML::Twig, xpath1 (limited xpath usage)xidel(xidel): xpath3saxon-lint(saxon-lint): my own project, wrapper over @Michael Kay’s Saxon-HE Java library, xpath3: using SaxonHE 9.6 ,XPath 3.x (+retro compatibility)
Examples:
xmllint --xpath '//element/@attribute' file.xml
xmlstarlet sel -t -v "//element/@attribute" file.xml
xpath -q -e '//element/@attribute' file.xml
xidel -se '//element/@attribute' file.xml
saxon-lint --xpath '//element/@attribute' file.xml