これは私のサンプルXMLファイルです。 max_sizeを出力にインポートする必要がありますか?
私はxlimitとxpathを使ってみましたが、どちらもうまくいきませんでした。
<?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>
ベストアンサー1
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>
(質問に閉じていないタグは閉じました)
... この場合、以下が出力されます25
(この例の場合)。
xml sel -t -v '//item/@max_size' -nl file.xml
これは使用中ですXMLスター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
XMLStarletはxmlstarlet
インストールされているのではなく、xml
一部のシステムにインストールされることに注意してください。
使用xmllint
(出力の終わりに改行なし):
xmllint --xpath 'string(//object[@name="jdbc_oracle_nonxa"]/item/@max_size)' file.xml