Question

Comment puis-je changer la chaîne de connexion à partir du fichier nhibernate.config en utilisant Nant

le problème est que tous les exemples de changer la valeur d'attribut, mais NHibernate a le texte intérieur

eq:

<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>
    ....

Je dois changer la propriété connection.connection_string

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

cela ne fonctionne pas dans ce cas.

Merci

Était-ce utile?

La solution

L'échantillon XPath que vous utilisez fait référence à des éléments nommés add avec des attributs appelés key. Dans votre cas, vous êtes à la recherche d'éléments de property avec des attributs appelés name.

Ensuite, puisque vous voulez changer le texte intérieur et non l'attribut @value sur l'élément de property vous devez supprimer la référence attribut de fuite.

Et enfin, puisque le xml NHibernate a un espace de noms spécifique, vous devrez informer xmlpoke à utiliser l'espace de noms correct.

La tâche devrait ressembler à ceci:

<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>

Note: Je ne l'ai pas testé ceci, mais les règles xml général / XPath sont dans le travail ici, donc j'espère que ça marchera. , Il pourrait aussi être qu'il ya un moyen d'indiquer à xmlpoke que l'espace de noms spécifié doit être la valeur par défaut et d'éliminer ainsi le besoin de préfixe namespace toutes les différentes parties du XPath.

Bonne chance!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top