linux 使用Bash更改XML文件

iqjalb3h  于 2022-11-02  发布在  Linux
关注(0)|答案(1)|浏览(179)

我有这个XML文件:

<?xml version="1.0" encoding="utf-8" ?>
  <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
    <session-factory>
      <property name="dialect">1</property>
      <property name="connection.provider">1</property>
      <property name="connection.driver_class">2</property>
      <property name="connection.db">3</property> 
  </session-factory>
</hibernate-configuration>

并且需要使用Bash将“属性名称=connection.db”更改为4。
已尝试

xmlstarlet ed -u "/hibernate-configuration/session-factory/property[@name='connection.db']" -v '4' test1.config

xmlstarlet ed -u  "//session-factory/property[@name='db']" -v '4' test1.config

但两个都不起作用。任何帮助都将不胜感激。

j0pj023g

j0pj023g1#

您需要说明命名空间。请尝试

xmlstarlet ed -L -N x="urn:nhibernate-configuration-2.2" -u "//x:session-factory//x:property[@name='connection.db']" -v "4"  test1.config

相关问题