this is the sample xml file I have, I need to get max_size as an output?
I tried using xlimit and xpath , both not working.
<?xml version="1.0" encoding="UTF-8"?>
<weblogic-service>
<service_info name="dummyapp" version="5.0"
<object name="WebApplications">
<item Location="dummyapp/ear/dummyapp.ear" name="dummy"/>
</object>
<object name="jdbc_oracle_nonxa">
<item db_name="MYDB1" db_user="dummyapp_user" global_trans="None" initial_size="10" jndi_name="dummyapp-aty-ds" max_size="25" name="dummyapp-aty-ds" statement_cache_size="10"/>
</object>
Run Code Online (Sandbox Code Playgroud)
假设 XML 格式良好,例如
<?xml version="1.0" encoding="UTF-8"?>
<weblogic-service>
<service_info name="dummyapp" version="5.0"/>
<object name="WebApplications">
<item Location="dummyapp/ear/dummyapp.ear" name="dummy"/>
</object>
<object name="jdbc_oracle_nonxa">
<item db_name="MYDB1" db_user="dummyapp_user" global_trans="None" initial_size="10" jndi_name="dummyapp-aty-ds" max_size="25" name="dummyapp-aty-ds" statement_cache_size="10"/>
</object>
</weblogic-service>
Run Code Online (Sandbox Code Playgroud)
(我关闭了问题中未关闭的标签)
...然后将输出以下内容25(对于此示例):
xml sel -t -v '//item/@max_size' -nl file.xml
Run Code Online (Sandbox Code Playgroud)
这是使用XMLStarlet来获取max_value所有item节点的属性值。最后-nl在输出后插入一个换行符。
如果您需要更具体并且只查看item节点中的object节点,其name是jdbc_oracle_nonxa:
xml sel -t -v '//object[@name="jdbc_oracle_nonxa"]/item/@max_size' -nl file.xml
Run Code Online (Sandbox Code Playgroud)
请注意,XMLStarlet 安装在某些系统上,xmlstarlet而不是安装xml在某些系统上。
使用xmllint(输出结束时没有换行符):
xmllint --xpath 'string(//object[@name="jdbc_oracle_nonxa"]/item/@max_size)' file.xml
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1851 次 |
| 最近记录: |