以与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的任何想法吗?
答案 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只解释了你的情况。