xmlstarlet
A command-line XML/XSLT toolkit. Note: You will likely need to know XPath: https://developer.mozilla.org/en-US/docs/Web/XPath. More information: https://xmlstar.sourceforge.net/docs.php.
-
Format an XML document and print to
stdout
:
xmlstarlet format {{path/to/file.xml}}
-
XML document can also be piped from
stdin
:
{{cat path/to/file.xml}} | xmlstarlet format
-
Print all nodes that match a given XPath:
xmlstarlet select --template --copy-of {{xpath}} {{path/to/file.xml}}
-
Insert an attribute to all matching nodes, and print to
stdout
(source file is unchanged):
xmlstarlet edit --insert {{xpath}} --type attr --name {{attribute_name}} --value {{attribute_value}} {{path/to/file.xml}}
-
Update the value of all matching nodes in place (source file is changed):
xmlstarlet edit --inplace --update {{xpath}} --value {{new_value}} {{file.xml}}
-
Delete all matching nodes in place (source file is changed):
xmlstarlet edit --inplace --delete {{xpath}} {{file.xml}}
-
Escape or unescape special XML characters in a given string:
xmlstarlet [un]escape {{string}}
-
List a given directory as XML (omit argument to list current directory):
xmlstarlet ls {{path/to/directory}}
License and Disclaimer
The content on this page is copyright © 2014—present the tldr-pages team and contributors.This page is used with permission under Creative Commons Attribution 4.0 International License.
While we do attempt to make sure content is accurate, there isn't a warranty of any kind.