我正在寻找此问题xmlstarlet update an attribute,并尝试替换Jboss配置文件中的属性。我在这里只是xml的一小部分:
<?xml version='1.0' encoding='UTF-8'?>
<server xmlns="urn:jboss:domain:10.0">
<extensions>
<extension module="org.jboss.as.clustering.infinispan"/>
</extensions>
<system-properties>
<property name="hibernate.hbm2ddl.auto" value="validate"/>
</system-properties>
</server>
我想替换的是hibernate.hbm2ddl.auto
的值,从validate
到update
按照上一个答案,我尝试了此命令,但不要更新该值:
xmlstarlet edit --update "//property[@name='hibernate.hbm2ddl.auto']/@value" --value "update" conf.xml
我尝试遵循完整路径,但结果是相同的:没有更新。
xmlstarlet edit --update "/server/system-properties/property[@name='hibernate.hbm2ddl.auto']/@value" --value "update" conf.xml
您的文件使用名称空间。
xmlstarlet edit --update '//*[local-name()="property"][@name="hibernate.hbm2ddl.auto"]/@value' -v "false" conf.xml
我用//*[local-name()="property"]
绕过了file.soap中的所有名称空间