如何在sqlmap.config中查找connectionString?

时间:2013-10-30 13:29:51

标签: asp.net xml nant ibatis

以与here完成类似的方式,我想从sqlmap.config文件中xmlpoke connectionString:

<?xml version="1.0" encoding="utf-8" ?>
<sqlMapConfig
   xmlns="http://ibatis.apache.org/dataMapper"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >

    <database>
        <provider name="oracleClient1.0"/>
        <dataSource name="DSExtranetAdherent"
                    connectionString="Data Source=MyInstance;User ID=MyUser;Password=MyPwd;Unicode=True;"/>

    </database>

</sqlMapConfig>

我试着用这个戳:

<xmlpoke
  file="${ConfigPath}\sqlmap.config"
  xpath="/sqlMapConfig/database/dataSource/@connectionString"
  value="${ConnectionString}" />

但是我收到一条错误消息:

  

[xmlpoke]找不到与XPath表达式'/ sqlMapConfig / database / dataSource / @ connectionString'匹配的节点。

当我删除xmlns属性时xpath有效,但是我得到了这个运行时错误:

  

无法通过资源“SqlMap.config”作为资源加载文件。

有关如何使用良好的xpath修复此xmlpoke的任何想法吗?

2 个答案:

答案 0 :(得分:1)

xmlns是默认命名空间,xmlpoke需要xpath解析的前缀:

<xmlpoke
  file="${ConfigPath}\sqlmap.config"
  xpath="/iba:sqlMapConfig/iba:database/iba:dataSource/@connectionString"
  value="${ConnectionString}">
  <namespaces>
    <namespace prefix="iba" uri="http://ibatis.apache.org/dataMapper" />
  </namespaces>
</xmlpoke>

答案 1 :(得分:0)

您应该为<namespaces>任务指定<xmlpoke>子节点:

<namespaces>
    <namespace prefix="xsi" uri="http://www.w3.org/2001/XMLSchema-instance" />
</namespaces>

last sample on this page只解释了你的情况。