Xml 使用XPath包含转换配置项的函数

Xml 使用XPath包含转换配置项的函数,xml,xpath,configuration,Xml,Xpath,Configuration,我有一组配置文件,已设置为在生成时转换。在某些情况下,我只需要替换包含特定文件名的配置条目。我的问题是获取一个正在运行的查询 下面是自定义配置部分中的配置转换条目 <filesettings file="application.remote.config" filename="remote file config" dir="C:\Remote\Download"

我有一组配置文件,已设置为在生成时转换。在某些情况下,我只需要替换包含特定文件名的配置条目。我的问题是获取一个正在运行的查询

下面是自定义配置部分中的配置转换条目

 <filesettings file="application.remote.config" 
               filename="remote file config"    
               dir="C:\Remote\Download"                 
               backupdir="C:\Remote\Download\BackUp"
               xdt:Locator="XPath(//[contains(@file,'remote')])" />

基于以上内容,我想在转换目标调用期间替换文件名中包含单词remote的filesettings条目。这将导致错误表达式必须计算到节点集。


我做错了什么?

谓词只允许在节点步骤之后使用。您的XPath表达式

//[contains(@file,'remote')]
不包含任何。例如,使用通配符匹配器
*

//*[contains(@file,'remote')]

或者将其替换为包含
@file
属性的节点名(如果始终相同)。

您能推荐一本关于xpath的好书吗?我真的很想在没有口香糖的情况下学习这一点。对不起,我从来没有研究过口香糖——在大学的一次讲座中有一个相当好的介绍。基本XPath不是很复杂,当必须克服一些限制时,它会变得更有趣。迈克尔·凯(Michael Kay)(顺便说一句,他正在写一些关于这些主题的stackoverflow的非常深刻的答案)和普里西拉·沃尔姆斯利(Priscilla Walmsley)的XQuery关于XSLT/XPath的书都是不错的,但我甚至不确定他们的目标读者是什么。