xmllint 是 libxml2 提供的轻量高效命令行 XML 工具,支持格式化、DTD/XSD 校验、XPath 提取及结合 shell 实现简单编辑,无需 Python/Java 环境,多数 Linux 预装或易安装。
xmllint
是 libxml2 提供的命令行 XML 处理工具,轻量、高效,适合脚本中解析、校验、格式化或提取 XML 内容。它不依赖 Python 或 Java 环境,开箱即用(多数 Linux 发行版预装或可通过
/
安装)。
格式化(美化)XML 输出
让压缩或混乱的 XML 变得可读:
基本格式化:
保存到新文件:
原地格式化(需 GNU sed 配合,xmllint 本身不支持 -i):
验证 XML 是否符合 DTD 或 XSD
检查语法和结构合法性:
用内置 DTD 验证(如 XHTML):
用外部 XSD 验证:
表示只输出错误,不打印文档内容;省略则会先输出校验后的 XML
提取节点内容(XPath 查询)
用
提取文本或节点,类似“XML 的 grep”:
Eclipse导入Android或其他的JAVA项目的正确方法 WORD版
本文档主要讲述的是Eclipse导入Android或其他的JAVA项目的正确方法;希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
下载
提取所有 title 文本:
提取带属性的节点:
提取整个节点(含标签):
(去掉
)
注意:XPath 必须写完整,
表示任意层级,
表示当前节点,
获取属性值
编辑与转换(配合 shell 工具)
xmllint 本身不修改文件,但可组合实现简单编辑:
替换某个值(如把 version=1.0 改成 2.0):
或
正则处理简单场景)
删除节点:
(用 XPath 排除方式间接“删除”)
生成新 XML 片段:
(- 表示从 stdin 读)
实际使用中,优先用
提取、
整理、
校验。复杂修改建议转用
或编程语言,xmllint 更擅长“查”和“验”,而非“改”。
apt install libxml2-utilsyum install libxml2xmllint --format input.xmlxmllint --format input.xml > pretty.xmlxmllint --format input.xml > tmp && mv tmp input.xmlxmllint --valid --noout file.xhtmlxmllint --schema schema.xsd data.xml --noout--noout--xpathxmllint --xpath '//title/text()' book.xmlxmllint --xpath '//*[@id="main"]/name/text()' config.xmlxmllint --xpath '//config' config.xml/text()//.@attrxmllint --shell input.xml (较繁琐,建议搭配 xmlstarsedxmllint --xpath '/*[not(self::obsolete)]' input.xmlecho '- new
' | xmllint --format ---xpath--format--schemaxmlstar