【发布时间】:2015-01-31 01:08:24
【问题描述】:
我在一些设置文件中有这个设置:
<datasource jndi-name="java:jboss/datasources/DS" pool-name="mysqlDS">
<connection-url>jdbc:mysql://localhost:3306/DSDB</connection-url>
<driver>mysqlDriver</driver>
<pool>
<min-pool-size>10</min-pool-size>
<max-pool-size>200</max-pool-size>
<prefill>true</prefill>
<use-strict-min>false</use-strict-min>
<flush-strategy>FailingConnectionOnly</flush-strategy>
</pool>
<security>
<security-domain>csa-encryption-sec</security-domain>
</security>
#block of code needs to be inserted HERE
</datasource>
这是需要插入的代码块:
<validation>
<check-valid-connection-sql>SELECT 1</check-valid-connection-sql>
<background-validation>true</background-validation>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"></valid-connection-checker>
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"></exception-sorter>
</validation>
sed我只用过简单的东西,但我不知道如何正确使用它,因为我不想替换任何文本,只需在里面添加代码块另一个。有什么想法或建议吗?
【问题讨论】:
-
不要使用 sed 进行 XML 处理。使用 xml 工具。就像 XSLT 或 xmlstarlet 或带有 xml 库的编程语言。
-
也许使用
awk或XSLT -
@EtanReisner,我明白了。我当时正在考虑使用
shell,但python应该更合适。 -
有一些工具,如 xmlstarlet 和 XMLgawk,用于在 shell 中与 XML 交互。这种情况具体可以用 sed 或 awk 完成,但更复杂的情况则不能。
-
看看这个,你需要类似的东西 - stackoverflow.com/questions/3649195/…