xmlstarletを使用してxmlに行を挿入する

xmlstarletを使用してxmlに行を挿入する

次のXMLファイルがあります。

    <?xml version="1.0" encoding="UTF-8"?>
    <!-- Solr managed schema - automatically generated - DO NOT EDIT -->
    <schema name="default-config" version="1.6">
      <uniqueKey>id</uniqueKey>
     ....

次の行を挿入したい。

<similarity class="solr.BM25SimilarityFactory"/>

<schema.. and <uniqueKeyそう間:

    <?xml version="1.0" encoding="UTF-8"?>
    <!-- Solr managed schema - automatically generated - DO NOT EDIT -->
    <schema name="default-config" version="1.6">
    <similarity class="solr.BM25SimilarityFactory"/>
      <uniqueKey>id</uniqueKey>

これを行うためにxmlstarletを使用しようとしていますが、運はありません:(

ベストアンサー1

2段階使用(読みやすくするために線を折りました)

xmlstarlet ed -s "//schema" -t elem -n "similarity"  \
              -i "//similarity" -t attr -n "class" -v "solr.BM25SimilarityFactory"  \
 > final.xml

-s()の使用に注意してくださいsubnode

また、この行は最後に追加されますが、xmlparserには問題ありません。

一度見てみたいかもしれませんこのスタックオーバーフローの質問

おすすめ記事