Skip to content

Instantly share code, notes, and snippets.

@cnauroth
Created December 31, 2015 22:04
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save cnauroth/ffc95773560612e5bcb1 to your computer and use it in GitHub Desktop.
xmllint xpath query sample
#!/bin/bash
# Enter XML as a heredoc, pipe it to xmllint, and run an XPath query.
cat <<EOF | xmllint --xpath /catalog/product[@type=\"cloths\"] -
<?xml version="1.0"?>
<!DOCTYPE catalog SYSTEM "catalog.dtd">
<catalog>
<product type="cloths" product_image="cardigan.jpg">
<catalog_item gender="Men's">
<item_number>QWZ5671</item_number>
<price>39.95</price>
<size description="Medium">
<color_swatch image="red_cardigan.jpg">Red</color_swatch>
<color_swatch image="burgundy_cardigan.jpg">Burgundy</color_swatch>
</size>
<size description="Large">
<color_swatch image="red_cardigan.jpg">Red</color_swatch>
<color_swatch image="burgundy_cardigan.jpg">Burgundy</color_swatch>
</size>
</catalog_item>
<catalog_item gender="Women's">
<item_number>RRX9856</item_number>
<price>42.50</price>
<size description="Small">
<color_swatch image="red_cardigan.jpg">Red</color_swatch>
<color_swatch image="navy_cardigan.jpg">Navy</color_swatch>
<color_swatch image="burgundy_cardigan.jpg">Burgundy</color_swatch>
</size>
<size description="Medium">
<color_swatch image="red_cardigan.jpg">Red</color_swatch>
<color_swatch image="navy_cardigan.jpg">Navy</color_swatch>
<color_swatch image="burgundy_cardigan.jpg">Burgundy</color_swatch>
<color_swatch image="black_cardigan.jpg">Black</color_swatch>
</size>
<size description="Large">
<color_swatch image="navy_cardigan.jpg">Navy</color_swatch>
<color_swatch image="black_cardigan.jpg">Black</color_swatch>
</size>
<size description="Extra Large">
<color_swatch image="burgundy_cardigan.jpg">Burgundy</color_swatch>
<color_swatch image="black_cardigan.jpg">Black</color_swatch>
</size>
</catalog_item>
</product>
</catalog>
EOF
# Output:
# <product type="cloths" product_image="cardigan.jpg">
# <catalog_item gender="Men's">
# <item_number>QWZ5671</item_number>
# <price>39.95</price>
# <size description="Medium">
# <color_swatch image="red_cardigan.jpg">Red</color_swatch>
# <color_swatch image="burgundy_cardigan.jpg">Burgundy</color_swatch>
# </size>
# <size description="Large">
# <color_swatch image="red_cardigan.jpg">Red</color_swatch>
# <color_swatch image="burgundy_cardigan.jpg">Burgundy</color_swatch>
# </size>
# </catalog_item>
# <catalog_item gender="Women's">
# <item_number>RRX9856</item_number>
# <price>42.50</price>
# <size description="Small">
# <color_swatch image="red_cardigan.jpg">Red</color_swatch>
# <color_swatch image="navy_cardigan.jpg">Navy</color_swatch>
# <color_swatch image="burgundy_cardigan.jpg">Burgundy</color_swatch>
# </size>
# <size description="Medium">
# <color_swatch image="red_cardigan.jpg">Red</color_swatch>
# <color_swatch image="navy_cardigan.jpg">Navy</color_swatch>
# <color_swatch image="burgundy_cardigan.jpg">Burgundy</color_swatch>
# <color_swatch image="black_cardigan.jpg">Black</color_swatch>
# </size>
# <size description="Large">
# <color_swatch image="navy_cardigan.jpg">Navy</color_swatch>
# <color_swatch image="black_cardigan.jpg">Black</color_swatch>
# </size>
# <size description="Extra Large">
# <color_swatch image="burgundy_cardigan.jpg">Burgundy</color_swatch>
# <color_swatch image="black_cardigan.jpg">Black</color_swatch>
# </size>
# </catalog_item>
# </product>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment