5

私はxmlファイルを持っています

<?xml version="1.0"?>
<preferences>
    <!--General options-->
    <options>
            <dbHost>localhost</dbHost>
            <dbUser>bwserver</dbUser>
            <dbPass>bwserver</dbPass>
            <dbPort>3306</dbPort>

値dbUserを更新するにはどうすればよいですか?

入力すると

xmlstarlet edit --update '/preferences/options/dbUser/'  --value 123 preferences.xml

何も起こりません。ターミナルにファイルの内容しか表示されません。xmlファイルは変更されませんでした。

4

1 に答える 1

8

あなたには2つの欠点があります:

  1. XPath 式が無効です。末尾のスラッシュをドロップして、/preferences/options/dbUser
  2. デフォルトでは、xmlstarlet は入力ファイルを変更せず、結果を stdout に出力します。出力を入力ファイル (または他のファイル) にリダイレクトすることにより、元のファイルを xmlstarlet 出力に置き換えるか、(stdin に出力する代わりに) 入力ファイルを出力に置き換えるxmlstarlet edit --update '/preferences/options/dbUser' --value 123 preferences.xml > preferences.xmlグローバル オプションを使用することができます。--inplaceコマンドはxmlstarlet edit --inplace --update '/preferences/options/dbUser' --value 123 preferences.xml

詳細を入力xmlstarlet edit --helpしてください

于 2013-02-27T11:29:36.883 に答える