在将“Double Eval”XPath 表达式与 MS InfoPath 结合使用来捕获重复结构的内容时遇到尾随分号问题。我需要从结果中消除尾随分号。这是表达式:
eval(eval(Repeater, 'concat(my:Node1DropDown, ";")'), "..")
上述表达式的结果可以在以下 XML 中的“Node1Eval”中看到。除了结果中的尾随分号外,表达式会很好。
<?xml version="1.0" encoding="UTF-8"?><?mso-infoPathSolution solutionVersion="1.0.0.4" productVersion="14.0.0" PIVersion="1.0.0.0" href="file:///C:\Documents%20and%20Settings\Chris\Local%20Settings\Application%20Data\Microsoft\InfoPath\Designer3\e2c7e5c6af2049e9\manifest.xsf" ?><?mso-application progid="InfoPath.Document" versionProgid="InfoPath.Document.2"?>
<my:myFields xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:my="http://schemas.microsoft.com/office/infopath/2003/myXSD/2012-08-28T16:45:10" xmlns:xd="http://schemas.microsoft.com/office/infopath/2003" xml:lang="en-us">
<my:Master_Section>
<my:group2>
<my:Repeater>
<my:Node1DropDown>Lasers</my:Node1DropDown>
<my:Node2DropDown>Lemon</my:Node2DropDown>
</my:Repeater>
<my:Repeater>
<my:Node1DropDown>Sharks</my:Node1DropDown>
<my:Node2DropDown>Apple</my:Node2DropDown>
</my:Repeater><my:Repeater>
<my:Node1DropDown>Monkeys</my:Node1DropDown>
<my:Node2DropDown>Lemon</my:Node2DropDown>
</my:Repeater>
</my:group2>
<my:Node1Eval>Lasers;Sharks;Monkeys;</my:Node1Eval>
<my:Node2Eval>Lemon;Apple;Lemon;</my:Node2Eval>
</my:Master_Section>
</my:myFields>
我猜想添加一些与返回项目的位置相关的逻辑可以帮助消除尾随分号。
问题的真正症结在于分号始终存在。我需要该Node1Eval
字段为空,直到它实际上具有要显示的值。如果不是,那么它将与[text()]
我尝试运行的 XPath 表达式测试混淆。