{"id":107,"date":"2007-07-25T11:24:04","date_gmt":"2007-07-25T16:24:04","guid":{"rendered":"http:\/\/raffy.ch\/blog\/2007\/07\/25\/parsing-xml-on-the-command-line\/"},"modified":"2007-07-25T11:24:04","modified_gmt":"2007-07-25T16:24:04","slug":"parsing-xml-on-the-command-line","status":"publish","type":"post","link":"https:\/\/raffy.ch\/blog\/2007\/07\/25\/parsing-xml-on-the-command-line\/","title":{"rendered":"Parsing XML on the Command Line"},"content":{"rendered":"<p>I haven&#8217;t written about UNIX scripting in a while. It was yesterday in the afternoon that our QA guy came over and asked me some questions about VI. Among his problems was the &#8220;parsing of an XML&#8221; file. He wanted to extract elements from specific branches of an XML structure. I told him that VI was not XML aware. It treats XMLs just like any other text file; line by line. He was not happy with my answer and kept bugging me. Then he said: &#8220;You should write a tool called XMLgrep&#8221;. And that was it. I was pretty sure that someone had written a tool that would do exactly that.<\/p>\n<p>After 30 seconds on google, I found it: <a href=\"http:\/\/xmlstar.sourceforge.net\">XMLStarlet<\/a>. It took me about 30 minutes to get the hang of the tool, but it is really cool. It takes <a href=\"http:\/\/www.w3schools.com\/xpath\/\">XPATH<\/a> queries as an input. My knowledge of XPATH goes back to my <a href=\"http:\/\/thor.cryptojail.net\">thesis<\/a> and is a bit rusty, but I finally got it right. Here is an example of how to apply an XPATH query to an XML file:<\/p>\n<p><code>xmlstarlet sel -t -c \"\/archive\/ActiveList[@name='Public Webmail']\/description\" JSOX_ActiveLists.xml<br \/>\n<\/code><\/p>\n<p>another one:<\/p>\n<p><code>xmlstarlet sel -t -m \"\/archive\/ActiveList\" -v \"concat (@name,'<br \/>\n')\" JSOX_ActiveLists.xm<br \/>\n<\/code><\/p>\n<p>Yes, there is a newline in this command. However, it didn&#8217;t really work for me. What I wanted to do is separating the different outputs with a newline, but for some reason this didn&#8217;t work. I tried all kinds of things, but no luck. Oh well.<\/p>\n<p>Here is another link that might be useful. It&#8217;s a nice <a href=\"http:\/\/www.ibm.com\/developerworks\/library\/x-starlet.html\">tutorial<\/a> on XMLStarlet.<\/p>\n<p>[tags]xml,parsing,command line,xpath,xmlstarlet[\/tags]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I haven&#8217;t written about UNIX scripting in a while. It was yesterday in the afternoon that our QA guy came over and asked me some questions about VI. Among his problems was the &#8220;parsing of an XML&#8221; file. He wanted to extract elements from specific branches of an XML structure. I told him that VI [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-107","post","type-post","status-publish","format-standard","hentry","category-unix-scripting"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"I haven&#039;t written about UNIX scripting in a while. It was yesterday in the afternoon that our QA guy came over and asked me some questions about VI. Among his problems was the &quot;parsing of an XML&quot; file. He wanted to extract elements from specific branches of an XML structure. I told him that VI\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Raffael Marty\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/raffy.ch\/blog\/2007\/07\/25\/parsing-xml-on-the-command-line\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Future of Tech and Security: Strategy &amp; Innovation with Raffy \u2013 Insights at the intersection of cybersecurity, strategy, and innovation.\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Parsing XML on the Command Line \u2013 Future of Tech and Security: Strategy &amp; Innovation with Raffy\" \/>\n\t\t<meta property=\"og:description\" content=\"I haven&#039;t written about UNIX scripting in a while. It was yesterday in the afternoon that our QA guy came over and asked me some questions about VI. Among his problems was the &quot;parsing of an XML&quot; file. He wanted to extract elements from specific branches of an XML structure. I told him that VI\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/raffy.ch\/blog\/2007\/07\/25\/parsing-xml-on-the-command-line\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/raffy.ch\/blog\/wp-content\/uploads\/2025\/09\/ogimage.png\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/raffy.ch\/blog\/wp-content\/uploads\/2025\/09\/ogimage.png\" \/>\n\t\t<meta property=\"og:image:width\" content=\"512\" \/>\n\t\t<meta property=\"og:image:height\" content=\"512\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2007-07-25T16:24:04+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2007-07-25T16:24:04+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@raffaelmarty\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Parsing XML on the Command Line \u2013 Future of Tech and Security: Strategy &amp; Innovation with Raffy\" \/>\n\t\t<meta name=\"twitter:description\" content=\"I haven&#039;t written about UNIX scripting in a while. It was yesterday in the afternoon that our QA guy came over and asked me some questions about VI. Among his problems was the &quot;parsing of an XML&quot; file. He wanted to extract elements from specific branches of an XML structure. I told him that VI\" \/>\n\t\t<meta name=\"twitter:creator\" content=\"@raffaelmarty\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/raffy.ch\/blog\/wp-content\/uploads\/2025\/09\/ogimage.png\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/raffy.ch\\\/blog\\\/2007\\\/07\\\/25\\\/parsing-xml-on-the-command-line\\\/#blogposting\",\"name\":\"Parsing XML on the Command Line \\u2013 Future of Tech and Security: Strategy & Innovation with Raffy\",\"headline\":\"Parsing XML on the Command Line\",\"author\":{\"@id\":\"https:\\\/\\\/raffy.ch\\\/blog\\\/author\\\/raffy\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/raffy.ch\\\/blog\\\/#person\"},\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/raffy.ch\\\/blog\\\/2007\\\/07\\\/25\\\/parsing-xml-on-the-command-line\\\/#articleImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1a1923877d9dbd00d99847074d62faab586cce0a9ee6a4c85e8bb7c46d7418ac?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Raffael Marty\"},\"datePublished\":\"2007-07-25T11:24:04-06:00\",\"dateModified\":\"2007-07-25T11:24:04-06:00\",\"inLanguage\":\"en-US\",\"commentCount\":1,\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/raffy.ch\\\/blog\\\/2007\\\/07\\\/25\\\/parsing-xml-on-the-command-line\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/raffy.ch\\\/blog\\\/2007\\\/07\\\/25\\\/parsing-xml-on-the-command-line\\\/#webpage\"},\"articleSection\":\"UNIX Scripting\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/raffy.ch\\\/blog\\\/2007\\\/07\\\/25\\\/parsing-xml-on-the-command-line\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/raffy.ch\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/raffy.ch\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/raffy.ch\\\/blog\\\/category\\\/unix-scripting\\\/#listItem\",\"name\":\"UNIX Scripting\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/raffy.ch\\\/blog\\\/category\\\/unix-scripting\\\/#listItem\",\"position\":2,\"name\":\"UNIX Scripting\",\"item\":\"https:\\\/\\\/raffy.ch\\\/blog\\\/category\\\/unix-scripting\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/raffy.ch\\\/blog\\\/2007\\\/07\\\/25\\\/parsing-xml-on-the-command-line\\\/#listItem\",\"name\":\"Parsing XML on the Command Line\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/raffy.ch\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/raffy.ch\\\/blog\\\/2007\\\/07\\\/25\\\/parsing-xml-on-the-command-line\\\/#listItem\",\"position\":3,\"name\":\"Parsing XML on the Command Line\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/raffy.ch\\\/blog\\\/category\\\/unix-scripting\\\/#listItem\",\"name\":\"UNIX Scripting\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/raffy.ch\\\/blog\\\/#person\",\"name\":\"Raffael Marty\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/raffy.ch\\\/blog\\\/2007\\\/07\\\/25\\\/parsing-xml-on-the-command-line\\\/#personImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1a1923877d9dbd00d99847074d62faab586cce0a9ee6a4c85e8bb7c46d7418ac?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Raffael Marty\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/raffy.ch\\\/blog\\\/author\\\/raffy\\\/#author\",\"url\":\"https:\\\/\\\/raffy.ch\\\/blog\\\/author\\\/raffy\\\/\",\"name\":\"Raffael Marty\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/raffy.ch\\\/blog\\\/2007\\\/07\\\/25\\\/parsing-xml-on-the-command-line\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1a1923877d9dbd00d99847074d62faab586cce0a9ee6a4c85e8bb7c46d7418ac?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Raffael Marty\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/raffy.ch\\\/blog\\\/2007\\\/07\\\/25\\\/parsing-xml-on-the-command-line\\\/#webpage\",\"url\":\"https:\\\/\\\/raffy.ch\\\/blog\\\/2007\\\/07\\\/25\\\/parsing-xml-on-the-command-line\\\/\",\"name\":\"Parsing XML on the Command Line \\u2013 Future of Tech and Security: Strategy & Innovation with Raffy\",\"description\":\"I haven't written about UNIX scripting in a while. It was yesterday in the afternoon that our QA guy came over and asked me some questions about VI. Among his problems was the \\\"parsing of an XML\\\" file. He wanted to extract elements from specific branches of an XML structure. I told him that VI\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/raffy.ch\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/raffy.ch\\\/blog\\\/2007\\\/07\\\/25\\\/parsing-xml-on-the-command-line\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/raffy.ch\\\/blog\\\/author\\\/raffy\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/raffy.ch\\\/blog\\\/author\\\/raffy\\\/#author\"},\"datePublished\":\"2007-07-25T11:24:04-06:00\",\"dateModified\":\"2007-07-25T11:24:04-06:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/raffy.ch\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/raffy.ch\\\/blog\\\/\",\"name\":\"Cyber Security - Strategy and Innovation\",\"description\":\"Insights at the intersection of cybersecurity, strategy, and innovation.\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/raffy.ch\\\/blog\\\/#person\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Parsing XML on the Command Line \u2013 Future of Tech and Security: Strategy & Innovation with Raffy","description":"I haven't written about UNIX scripting in a while. It was yesterday in the afternoon that our QA guy came over and asked me some questions about VI. Among his problems was the \"parsing of an XML\" file. He wanted to extract elements from specific branches of an XML structure. I told him that VI","canonical_url":"https:\/\/raffy.ch\/blog\/2007\/07\/25\/parsing-xml-on-the-command-line\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/raffy.ch\/blog\/2007\/07\/25\/parsing-xml-on-the-command-line\/#blogposting","name":"Parsing XML on the Command Line \u2013 Future of Tech and Security: Strategy & Innovation with Raffy","headline":"Parsing XML on the Command Line","author":{"@id":"https:\/\/raffy.ch\/blog\/author\/raffy\/#author"},"publisher":{"@id":"https:\/\/raffy.ch\/blog\/#person"},"image":{"@type":"ImageObject","@id":"https:\/\/raffy.ch\/blog\/2007\/07\/25\/parsing-xml-on-the-command-line\/#articleImage","url":"https:\/\/secure.gravatar.com\/avatar\/1a1923877d9dbd00d99847074d62faab586cce0a9ee6a4c85e8bb7c46d7418ac?s=96&d=mm&r=g","width":96,"height":96,"caption":"Raffael Marty"},"datePublished":"2007-07-25T11:24:04-06:00","dateModified":"2007-07-25T11:24:04-06:00","inLanguage":"en-US","commentCount":1,"mainEntityOfPage":{"@id":"https:\/\/raffy.ch\/blog\/2007\/07\/25\/parsing-xml-on-the-command-line\/#webpage"},"isPartOf":{"@id":"https:\/\/raffy.ch\/blog\/2007\/07\/25\/parsing-xml-on-the-command-line\/#webpage"},"articleSection":"UNIX Scripting"},{"@type":"BreadcrumbList","@id":"https:\/\/raffy.ch\/blog\/2007\/07\/25\/parsing-xml-on-the-command-line\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/raffy.ch\/blog#listItem","position":1,"name":"Home","item":"https:\/\/raffy.ch\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/raffy.ch\/blog\/category\/unix-scripting\/#listItem","name":"UNIX Scripting"}},{"@type":"ListItem","@id":"https:\/\/raffy.ch\/blog\/category\/unix-scripting\/#listItem","position":2,"name":"UNIX Scripting","item":"https:\/\/raffy.ch\/blog\/category\/unix-scripting\/","nextItem":{"@type":"ListItem","@id":"https:\/\/raffy.ch\/blog\/2007\/07\/25\/parsing-xml-on-the-command-line\/#listItem","name":"Parsing XML on the Command Line"},"previousItem":{"@type":"ListItem","@id":"https:\/\/raffy.ch\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/raffy.ch\/blog\/2007\/07\/25\/parsing-xml-on-the-command-line\/#listItem","position":3,"name":"Parsing XML on the Command Line","previousItem":{"@type":"ListItem","@id":"https:\/\/raffy.ch\/blog\/category\/unix-scripting\/#listItem","name":"UNIX Scripting"}}]},{"@type":"Person","@id":"https:\/\/raffy.ch\/blog\/#person","name":"Raffael Marty","image":{"@type":"ImageObject","@id":"https:\/\/raffy.ch\/blog\/2007\/07\/25\/parsing-xml-on-the-command-line\/#personImage","url":"https:\/\/secure.gravatar.com\/avatar\/1a1923877d9dbd00d99847074d62faab586cce0a9ee6a4c85e8bb7c46d7418ac?s=96&d=mm&r=g","width":96,"height":96,"caption":"Raffael Marty"}},{"@type":"Person","@id":"https:\/\/raffy.ch\/blog\/author\/raffy\/#author","url":"https:\/\/raffy.ch\/blog\/author\/raffy\/","name":"Raffael Marty","image":{"@type":"ImageObject","@id":"https:\/\/raffy.ch\/blog\/2007\/07\/25\/parsing-xml-on-the-command-line\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/1a1923877d9dbd00d99847074d62faab586cce0a9ee6a4c85e8bb7c46d7418ac?s=96&d=mm&r=g","width":96,"height":96,"caption":"Raffael Marty"}},{"@type":"WebPage","@id":"https:\/\/raffy.ch\/blog\/2007\/07\/25\/parsing-xml-on-the-command-line\/#webpage","url":"https:\/\/raffy.ch\/blog\/2007\/07\/25\/parsing-xml-on-the-command-line\/","name":"Parsing XML on the Command Line \u2013 Future of Tech and Security: Strategy & Innovation with Raffy","description":"I haven't written about UNIX scripting in a while. It was yesterday in the afternoon that our QA guy came over and asked me some questions about VI. Among his problems was the \"parsing of an XML\" file. He wanted to extract elements from specific branches of an XML structure. I told him that VI","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/raffy.ch\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/raffy.ch\/blog\/2007\/07\/25\/parsing-xml-on-the-command-line\/#breadcrumblist"},"author":{"@id":"https:\/\/raffy.ch\/blog\/author\/raffy\/#author"},"creator":{"@id":"https:\/\/raffy.ch\/blog\/author\/raffy\/#author"},"datePublished":"2007-07-25T11:24:04-06:00","dateModified":"2007-07-25T11:24:04-06:00"},{"@type":"WebSite","@id":"https:\/\/raffy.ch\/blog\/#website","url":"https:\/\/raffy.ch\/blog\/","name":"Cyber Security - Strategy and Innovation","description":"Insights at the intersection of cybersecurity, strategy, and innovation.","inLanguage":"en-US","publisher":{"@id":"https:\/\/raffy.ch\/blog\/#person"}}]},"og:locale":"en_US","og:site_name":"Future of Tech and Security: Strategy &amp; Innovation with Raffy \u2013 Insights at the intersection of cybersecurity, strategy, and innovation.","og:type":"article","og:title":"Parsing XML on the Command Line \u2013 Future of Tech and Security: Strategy &amp; Innovation with Raffy","og:description":"I haven't written about UNIX scripting in a while. It was yesterday in the afternoon that our QA guy came over and asked me some questions about VI. Among his problems was the &quot;parsing of an XML&quot; file. He wanted to extract elements from specific branches of an XML structure. I told him that VI","og:url":"https:\/\/raffy.ch\/blog\/2007\/07\/25\/parsing-xml-on-the-command-line\/","og:image":"https:\/\/raffy.ch\/blog\/wp-content\/uploads\/2025\/09\/ogimage.png","og:image:secure_url":"https:\/\/raffy.ch\/blog\/wp-content\/uploads\/2025\/09\/ogimage.png","og:image:width":512,"og:image:height":512,"article:published_time":"2007-07-25T16:24:04+00:00","article:modified_time":"2007-07-25T16:24:04+00:00","twitter:card":"summary","twitter:site":"@raffaelmarty","twitter:title":"Parsing XML on the Command Line \u2013 Future of Tech and Security: Strategy &amp; Innovation with Raffy","twitter:description":"I haven't written about UNIX scripting in a while. It was yesterday in the afternoon that our QA guy came over and asked me some questions about VI. Among his problems was the &quot;parsing of an XML&quot; file. He wanted to extract elements from specific branches of an XML structure. I told him that VI","twitter:creator":"@raffaelmarty","twitter:image":"https:\/\/raffy.ch\/blog\/wp-content\/uploads\/2025\/09\/ogimage.png"},"aioseo_meta_data":{"post_id":"107","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2021-06-08 17:05:18","updated":"2025-06-12 20:00:38","focus_keyword":null,"additional_keywords":null,"truseo_locale":null,"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/raffy.ch\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/raffy.ch\/blog\/category\/unix-scripting\/\" title=\"UNIX Scripting\">UNIX Scripting<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tParsing XML on the Command Line\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/raffy.ch\/blog"},{"label":"UNIX Scripting","link":"https:\/\/raffy.ch\/blog\/category\/unix-scripting\/"},{"label":"Parsing XML on the Command Line","link":"https:\/\/raffy.ch\/blog\/2007\/07\/25\/parsing-xml-on-the-command-line\/"}],"_links":{"self":[{"href":"https:\/\/raffy.ch\/blog\/wp-json\/wp\/v2\/posts\/107","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/raffy.ch\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/raffy.ch\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/raffy.ch\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/raffy.ch\/blog\/wp-json\/wp\/v2\/comments?post=107"}],"version-history":[{"count":0,"href":"https:\/\/raffy.ch\/blog\/wp-json\/wp\/v2\/posts\/107\/revisions"}],"wp:attachment":[{"href":"https:\/\/raffy.ch\/blog\/wp-json\/wp\/v2\/media?parent=107"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/raffy.ch\/blog\/wp-json\/wp\/v2\/categories?post=107"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/raffy.ch\/blog\/wp-json\/wp\/v2\/tags?post=107"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}