美文网首页Linux
Mac|CentOS使用shell指令解析XML

Mac|CentOS使用shell指令解析XML

作者: Okami_ | 来源:发表于2019-12-13 15:47 被阅读0次

xmllint (系统自带的指令)

 如果您输入的XML包含前缀的名称空间,则必须使用local-name()代替name()。
CentOS
  • 使用--xpath的时候会有问题,可以选择--shell
#  xmllint --xpath "/" pom.xml 
Unknown option --xpath
Usage : xmllint [options] XMLfiles ...
    Parse the XML files and output the result of the parsing
    --version : display the version of the XML library used
    --debug : dump a debug tree of the in-memory document
......
  • 使用--shell(CentOS和MacOS通用)
# xmllint --shell pom.xml 
/ > xpath //*[name() = 'project']/*[name() = 'version']/text()
Object is a Node Set :
Set contains 1 nodes:
1  TEXT
    content=1.1.5-SNAPSHOT
/ >
Mac
  • 使用--xpath(在CentOS6.5中,由于libxml2的版本过低,所以无法直接使用--xpath)
okami$ xmllint --xpath "//*[name() = 'project']/*[name() = 'version']/text()" pom.xml
1.1.5-SNAPSHOT
  • 使用--shell
okami$ xmllint --shell pom.xml 
/ > xpath //*[name() = 'project']/*[name() = 'version']/text()
Object is a Node Set :
Set contains 1 nodes:
1  TEXT
    content=1.1.5-SNAPSHOT
/ >

xpath

xpath目前只发现可以在MacOS上使用,CentOS上暂时没有找到该工具
  • MacOS
okami$ xpath pom.xml "/project/version/text()"
Found 1 nodes:
-- NODE --
1.1.5-SNAPSHOT

xml2

  • MacOs和CentOS的用法都一样
okami$ cat pom.xml |xml2 |grep /project/version
/project/version=1.1.5-SNAPSHOT

xmlstarlet

安装 xmlstarlet

  • CentOS
# yum install xmlstarlet -y
  • MacOS
okami$ brew install xmlstarlet
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 2 taps (homebrew/core and homebrew/cask).
==> Updated Formulae
bit             exploitdb       go@1.12         minikube        navi            pandoc          stress-ng       terrahub        unbound         wxmaxima
convox          gnome-autoar    mesa            msgpack         paket           powerline-go    sysbench        traefik         unrar

==> Downloading https://homebrew.bintray.com/bottles/xmlstarlet-1.6.1.mojave.bottle.tar.gz
######################################################################## 100.0%
==> Pouring xmlstarlet-1.6.1.mojave.bottle.tar.gz
🍺  /usr/local/Cellar/xmlstarlet/1.6.1: 15 files, 193.2KB

使用 xmlstarlet

# xmlstarlet sel -t -v  "//*[name() = 'project']/*[name() = 'version']/text()" pom.xml
1.0-SNAPSHOT

参考链接

相关文章

  • Mac|CentOS使用shell指令解析XML

    xmllint (系统自带的指令) CentOS 使用--xpath的时候会有问题,可以选择--shell 使用-...

  • MyBatis中#{}和${}的区别

    1.将Mapper.xml中的SQL语句解析为JDBC一个预编译指令时不同。 使用#{}时 这句SQL语句会被解析...

  • linux 、terminal操作自学整理

    概念 linux 包含 centos 、ubuntu 等centos 使用 yum 指令ubuntu 使用...

  • shell脚本最佳实践

    基本语法 一条shell指令以换行符或者分号结束。执行过程为shell解析整条语句(解析变量,展开变量,处理基本逻...

  • Android15-XML和JSON解析

    1. XML解析的两种方式 服务器返回的XML数据如下 1.1使用Pull方式解析XML数据 使用Pull解析,首...

  • 安卓基础篇之SAX解析XML文件

    SAX解析XML文件 基本使用方法 详细源码解析 SAXParserImpl对象的初始化 在使用SAX解析XML文...

  • python(解析和构建xml文档)

    xml解析 xml文档 code 构建xml文档 简单使用 code

  • Shell指令

    什么是Shell指令 就是Linux命令(注:后期使用这些命令管理Linux操作系统) 常用的Shell指令 显示...

  • MAC 指令

    虽然用 MAC 很久了,但是对 MAC shell 指令就是记不住,唉,可蛋疼了 更新 bash_profile ...

  • 使用java解析xml

    本文使用javax.xml.parsers包下的DocumentBuilderFactory构建解析工具解析xml...

网友评论

    本文标题:Mac|CentOS使用shell指令解析XML

    本文链接:https://www.haomeiwen.com/subject/ubufnctx.html