我有一个 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
使用两个步骤(为了便于阅读,我折叠了线)
xmlstarlet ed -s "//schema" -t elem -n "similarity" \
-i "//similarity" -t attr -n "class" -v "solr.BM25SimilarityFactory" \
> final.xml
-s
注意( )的使用subnode
。
另请注意,该行是在末尾添加的,但对于 xmlparser 来说应该没有问题。
您可能想看看这个堆栈溢出问题。