xmlstarlet

目录

1. 介绍

xml文件的查、改。

2. 功能

3. 用例

1. 介绍

2. 功能

3. 用例

3.1  xml文件1

xml1.xml


< AAAA xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="AAAA.xsd" version="1.2.0">
    
        
            
                
                
            
        
    
    
        
            
                
                
                
            
            
                
                
                
            
        
    

 查

case1:获取123

xmlstarlet sel -t -m "/AAAA/subsystem[@name='BBBB']/group[@name='CCCC']/record[@name='DDDD']/field[@name='EEEE']" -v "string(@value)"  xml1.xml

case2:获取12323

xmlstarlet sel -t -m "/AAAA/subsystem[@name='BBBB2']/group[@name='CCCC2']/record[@name='DDDD2']/num[@name='num'][@value='2']../field[@name='EEEE']" -v "string(@value)"  xml1.xml

改:

case1:ABC->CBA

xmlstarlet ed --inplace -u         "/AAAA/subsystem[@name='BBBB']/group[@name='CCCC']/record[@name='DDDD']/field[@name='FFFF']/@value" -v "CBA"  xml1.xml

case2:ABC23->CBA23

xmlstarlet ed --inplace -u

"/AAAA/subsystem[@name='BBBB2']/group[@name='CCCC2']/record[@name='DDDD2']/num[@name='num'][@value='2']../field[@name='FFFF']" -v "CBA23"  xml1.xml

3.2 xml文件2

xml2.xml



    
        123
        
abc
2 1 123 2 1234

查:

case1:获取123

xmlstarlet sel -t -v "/AAAA/BBBB/CC" xml2.xml

case2:获取1234

xmlstarlet sel -t -v "/AAAA/EEEE/FF[num='2']/GG" xml2.xml

改:

case1:abc->cba

xmlstarlet ed --inplace -u "/AAAA/BBBB/DD" -v "cba" xml2.xml

case2:1234->4321

xmlstarlet ed --inplace -u "/AAAA/EEEE/FF[num='2']/GG" -v "4321" xml2.xml

你可能感兴趣的:(linux,xmlstarlet)