2017-07-17 142 views
0

我有以下XML文本Shell命令來提取XML文件的值到shell腳本

<?xml version="1.0" encoding="UTF-8"?> 

<buildinfo xmlns:xsi="http&#x3a;&#x2f;&#x2f;www.w3.org&#x2f;2001&#x2f;XMLSchema-instance" xmlns="https&#x3a;&#x2f;&#x2f;abc.com&#x2f;schema&#x2f;4.0&#x2f;buildinfo" xsi:schemaLocation="https&#x3a;&#x2f;&#x2f;abc.com&#x2f;schema&#x2f;4.0&#x2f;buildinfo https&#x3a;&#x2f;&#x2f;abc.com&#x2f;resource&#x2f;4.0&#x2f;buildinfo.xsd" buildinfo_version="1" account_id="23456" app_id="456321" sandbox_id="223457" build_id="1234567">  
<build version="1 Jul 2016 Static" build_id="1234567" submitter="David" platform="Not Specified" lifecycle_stage="Not Specified" results_ready="true" scan_overdue="false" legacy_scan_engine="false"> 
    <analysis_unit analysis_type="Static" published_date="2016-07-1T15&#x3a;58&#x3a;55-04&#x3a;00" published_date_sec="324532678" status="Results Ready" engine_version="2341267"/> 
</build> 
</buildinfo> 

我有一個需要從該文件build_id一個shell腳本,(build_id不斷變化)。如何從該文件中將「build_id」值提取到該腳本中的變量中。

回答

0

xmlstarlet是用於查詢XML文件

例如有用:

xmlstarlet sel -t -m 'buildinfo' sample.xml 

Output: 
buildinfo 
buildinfo/build 
buildinfo/build/analysis_unit 

的更多信息:http://xmlstar.sourceforge.net/doc/UG/xmlstarlet-ug.html

+0

我似乎並沒有得到任何輸出,當我使用上述命令。 :( – David

+0

請檢查您的安裝,我在MacOS中試過,它工作正常。 – Mowgli