gpt4 book ai didi

nhibernate - 使用 nant xmlpoke 更改 nhibernate 配置

转载 作者:行者123 更新时间:2023-12-02 07:52:55 26 4
gpt4 key购买 nike

如何使用 nant 从 nhibernate.config 文件更改连接字符串

问题是所有的例子都是关于改变属性值的,但是nhibernate有内部文本

情商:

<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property name="connection.connection_string">Data Source.\server;Database=UnitTestDb;UID=user;pwd=pass;</property>
<property name="dialect">NHibernate.Dialect.MsSql2008Dialect</property>
<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
<property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
<property name="show_sql">true</property>
<property name="connection.release_mode">auto</property>
<property name="adonet.batch_size">500</property>
....

我需要更改属性 connection.connection_string

<xmlpoke        file="${nhibernate.file}"
xpath="/hibernate-configuration/session-factory/add[@key='connection.connection_string']/@value"
value="${connection.string}">
</xmlpoke>

这在这种情况下不起作用。

谢谢

最佳答案

您正在使用的示例 xpath 指的是名为 add 的元素以及名为 key 的属性。在您的情况下,您正在寻找具有名为 name 的属性的 property 元素。

接下来,由于您要更改内部文本而不是 property 元素上的 @value 属性,因此您应该删除尾随的属性引用。

最后,由于 NHibernate xml 有一个特定的命名空间,您必须通知 xmlpoke使用正确的命名空间。

所以任务应该是这样的:

<xmlpoke file="${nhibernate.file}"
xpath="/nhc:hibernate-configuration/nhc:session-factory/nhc:property[@name='connection.connection_string']"
value="${connection.string}">
<namespaces>
<namespace prefix="nhc" uri="urn:nhibernate-configuration-2.2" />
</namespaces>
</xmlpoke>

注意:我还没有对此进行测试,但一般的 xml/xpath 规则在这里起作用,所以我希望它能起作用。此外,可能有一种方法可以向 xmlpoke 指示指定的命名空间应该是默认命名空间,从而消除了在 xpath 中为所有不同部分添加命名空间前缀的需要。

祝你好运!

关于nhibernate - 使用 nant xmlpoke 更改 nhibernate 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2605933/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com