国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

利用Shell解析處理XML的方法匯總

2019-10-26 18:55:39
字體:
來源:轉載
供稿:網友

前言

前幾天在干活的時候遇到一個需要解析處理xml文件的一個需求,當時考慮到邏輯比較復雜,因此用java慢慢搞了搞。不過這個需求經常會變,每次變化之后都要重新找到jar包的代碼,改了之后還要替換原來的jar包,一來不方便修改,二來不方便統一保存代碼,三來也不方便查看jar包的功能。

其實對于這種比較靈活的功能,最方便高效的做法是采用一些腳本語言,比如python,ruby等等,開發效率高,而且也能處理一些復雜邏輯。但是由于種種原因,工作中有的機器沒有安裝這些語言的解釋器。因此不得已,研究了一波用shell腳本解析xml的方法。

說到底,shell還是不太適合處理復雜的邏輯,但是對于一些簡單的查找替換等需求,用shell來搞還是挺方便的。

我這里主要采用了下面三個工具:

xmllint xpath xml2

下面就分別總結下這三個工具的用法,方便以后查閱。

xmllint

簡述

xmllint其實是由一個叫libxml2的c語言庫函數實現的一個小工具,因此效率比較高,對不同系統的支持度也很好,功能也比較全。他一般屬于libxml2-utils這個軟件包,因此類似與sudo apt install libxml2-utils的命令就可以安裝。

功能

xmllint至少支持下面幾個常用功能:

支持xpath查詢語句 支持類shell的交互式查詢 支持xml格式驗證 支持dtd,xsd對xml的校驗 支持編碼轉換 支持xml格式化 支持去空格壓縮 支持時間效率統計

其實我們比較常用的功能主要也就是三個–xpath查詢、去空格和格式化、校驗。

比如當前有sample.xml:

<books>  <book id="1">    <name>book1</name>    <price>100</price>  </book>  <book id="2">    <name>book2</name>    <price>200</price>  </book>  <book id="3"><name>book3</name><price>300</price>  </book></books>

執行xpath查詢:

myths@business:~$ xmllint --xpath "http://book[@id=2]/name/text()" sample.xmlbook2

去空格:

myths@business:~$ xmllint --noblanks sample.xml<?xml version="1.0"?><books><book id="1"><name>book1</name><price>100</price><license/></book><book id="2"><name>book2</name><price>200</price></book><book id="3"><name>book3</name><price>300</price></book></books>

格式化:

myths@business:~$ xmllint --format sample.xml<?xml version="1.0"?><books> <book id="1"> <name>book1</name> <price>100</price> <license/> </book> <book id="2"> <name>book2</name> <price>200</price> </book> <book id="3"> <name>book3</name> <price>300</price> </book></books>            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 原平市| 津市市| 阿图什市| 淳化县| 屯门区| 苗栗市| 牡丹江市| 商都县| 叶城县| 宁德市| 游戏| 潜江市| 田阳县| 高碑店市| 乌兰县| 安国市| 乌海市| 育儿| 贞丰县| 尤溪县| 翼城县| 五寨县| 天峨县| 平定县| 赤峰市| 珲春市| 阳原县| 双峰县| 洱源县| 张家港市| 盐亭县| 获嘉县| 北海市| 文安县| 清苑县| 叙永县| 乐平市| 德化县| 定襄县| 辉县市| 旺苍县|