我的問題規定:的XPath:默認爲「主」節點中,選擇當前節點,如果(在第三個節點)
- 我需要在「Master_Node」選擇值僅在「Sub_Node_Checker」設置到「假」。
- 如果「Sub_Node_Checker」設置爲「true」,則該值必須設置爲「Sub_Node」。
- 當前節點是 「Sub_Node」
- 我使用InfoPath 2010
這裏是我的示例XML:
<my:myFields xmlns:my="http://schemas.microsoft.com/office/infopath/2003/myXSD/2013-07-02T14:58:05" xml:lang="en-us">
<my:Master_Node>123456</my:Master_Node>
<my:Repeater>
<my:Sub_Node_Checker>false</my:Sub_Node_Checker>
<my:Sub_Node></my:Sub_Node>
</my:Repeater>
</my:myFields>
參考the following forum thread下載我XSN模板。
這裏是我一直在試圖使用XPath,但無濟於事(增加了可讀性換行):
//my:Master_Node[../my:Sub_Node_Checker = "false"]
|
../my:Sub_Node[../my:Sub_Node_Checker = "true"]
這似乎並沒有任何返回任何東西,我不知道爲什麼。
下面的問題伴隨着我的XML格式的「Sub_Node_Checker」:「子節點與主節點不同嗎?」
- 如果用戶選擇「是」(true),那麼Sub_Node字段應該被設置爲它自己的值。
- 如果用戶選擇「否」(false),那麼Sub_Node字段應該默認爲Master_Node。
編輯&附加XML
我Repeater
部分重複(按名稱),似乎會導致與XPath選擇額外的混亂。
<my:myFields xmlns:my="http://schemas.microsoft.com/office/infopath/2003/myXSD/2013-07-02T14:58:05" xml:lang="en-us">
<my:Master_Node>123123</my:Master_Node>
<my:Repeater>
<my:Sub_Node_Checker>false</my:Sub_Node_Checker>
<my:Sub_Node></my:Sub_Node>
</my:Repeater>
<my:Repeater>
<my:Sub_Node_Checker>false</my:Sub_Node_Checker>
<my:Sub_Node></my:Sub_Node>
</my:Repeater>
</my:myFields>
Jens,'//my:Master_Node[..//my:Sub_Node_Checker =「false」]'當我有最初發布的確切結構時工作。我已經擴展了我的問題,因爲我可能已經遺漏了一些重要的細節。謝謝你! – Shrout1
是的,你絕對錯過了重要的信息。 :)我仍然不確定謂詞應該是什麼樣子。如何決定是否包含主節點?是否所有節點檢查器都是假的,或者只有其中一個?難道根本沒有?主節點是否也重複? –
如果當前'../ my:Repeater/my:Sub_Node_Checker'等於'false',則將'../ my:Repeater/my:Sub_Node'設置爲'// my:Master_Node'。如果當前的'../ my:Repeater/my:Sub_Node_Checker'等於'true',則將'../ my:Repeater/my:Sub_Node'設置爲'self'。如果安裝了InfoPath,請查看[在此XSN模板文件](http://www.infopathdev.com/forums/storage/41/91044/Conditional_Node_Copy.xsn)。我相信如果你能看看這個模板會更清楚。 – Shrout1