我有一个xml文件(executeRM.xml),其内容如下所述。
<r1> <n1 name="component1" version="14.0" state="ToBeInstalled"/> <n2 name="Component2" version="13.0" state="Installed"/> <n3 name="Component3" version="12.0" state="TobeInstalled"></r1>
我使用过“FS触发器 - 监视文件”并且每隔一分钟安排一次,我已经给出了上述xml文件的完整路径。现在我想编写一个xpath查询,只有在状态为3个组件或全部的任何一个组件的“ToBeInstalled”时才会触发该作业。我编写了下面的xpath查询,但是作业本身没有被触发。
/r1/n1[@name='Component1' and @state='ToBeInstalled'] /r1/n2[@name='Component2' and @state='ToBeInstalled'] /r1/n3[@name='Component3' and @state='ToBeInstalled']
答案 0 :(得分:0)
根据FSTrigger的帮助:
轮询指定XML文件的内容。你必须给XPath 表达式。如果XPath表达式的值,则触发构建 在两次民意调查之间发生了变化。
你确定你的xPath
/r1/n1[@name='Component1' and @state='ToBeInstalled'] /r1/n2[@name='Component2' and @state='ToBeInstalled'] /r1/n3[@name='Component3' and @state='ToBeInstalled']
是对的吗?你有什么看似3个独立的xPaths。
即使你只使用/r1/n1[@name='Component1' and @state='ToBeInstalled']
,这只选择n1,一个没有文本值的节点,所以它永远不会改变(这只是我的理论)。
我能够通过使用来触发它
例如/r1/n1/@state
,但我不认为这会给你想要的控件(并且你可能会触发多个构建)。
我认为您需要有关如何评估XPath表达式的值的更多信息。您可以通过plugin site向维护人员询问更多信息。