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에는 문제가 되지 않습니다.

한 번 살펴보고 싶을 수도 있습니다이 스택 오버플로 질문.

관련 정보