Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xquery xf:重复节点集性能差_Xquery_Xforms - Fatal编程技术网

Xquery xf:重复节点集性能差

Xquery xf:重复节点集性能差,xquery,xforms,Xquery,Xforms,我用xf:repeat nodeset元素填写表格: <tbody xf:repeat-nodeset="instance('table')//result"> <tr> <td> <xf:output value="interfaceName"></xf:output>

我用xf:repeat nodeset元素填写表格:

           <tbody xf:repeat-nodeset="instance('table')//result">
               <tr>
                    <td>
                        <xf:output value="interfaceName"></xf:output>   
                    </td>
                    <td>
                        <xf:output value="reportDate"></xf:output> 
                    </td>
                    <td>
                       <xf:group ref=".[testResult='success']">
                          <xf:output value="testResult" style="color:green;font-weight:bold"/>
                       </xf:group>
                       <xf:group ref=".[testResult='failure']">
                          <xf:output value="testResult" style="color:red;font-weight:bold"/>
                       </xf:group>
                    </td> 
                    <td>
                        <xf:trigger appearance="minimal">
                            <xf:label>File link</xf:label>
                            <xf:action ev:event="DOMActivate">
                                <xf:load show="new">
                                    <xf:resource value="fileLink"/>
                                </xf:load>
                            </xf:action>
                        </xf:trigger>
                    </td>
                </tr>
            </tbody>

文件链接

迭代600个结果并填充4列需要28秒。在我看来,这是非常重要的。有人能建议我如何改进这一点吗?

在XPath表达式中使用//对于某些XForms引擎来说可能是个问题,至少对于XSLTForms来说是这样,因为XForms没有指定如何定义索引来改进这一点。没有索引,所有节点都会逐个测试


如果可能的话,您应该尝试使用完整路径。

在XPath表达式中使用//对于某些XForms引擎来说可能是个问题,至少对于XSLTForms来说是这样,因为XForms没有指定如何定义索引来改进这一点。没有索引,所有节点都会逐个测试


如果可能,您应该尝试使用完整路径。

对于这种结果的只读显示,我发现一些处理器支持的
transform()
函数非常方便。编写一个样式表,接受“result”实例作为输入,并生成一个HTML表;我将其称为“results to table.xsl”。然后写

<xf:output value="transform(instance('results'), 
                            'results-to-table.xsl', 
                            false)"
           mediatype="application/xhtml+xml"/>

在文档中的适当位置


因为
transform()
在XForms1.1中不是标准的,所以这只适用于接受它作为语言扩展的处理器;XSLTForms会,但我不知道其他处理器会做什么。

对于这种结果的只读显示,我发现一些处理器支持的
transform()
函数非常方便。编写一个样式表,接受“result”实例作为输入,并生成一个HTML表;我将其称为“results to table.xsl”。然后写

<xf:output value="transform(instance('results'), 
                            'results-to-table.xsl', 
                            false)"
           mediatype="application/xhtml+xml"/>

在文档中的适当位置


因为
transform()
在XForms1.1中不是标准的,所以这只适用于接受它作为语言扩展的处理器;XSLTForms会,但我不知道其他处理器会做什么。

当我使用完整路径时,我什么也得不到:tbody xf:repeat nodeset=“instance('table')/results/result”我想知道表实例中的根元素是否命名为“results”。如果是这样,请记住函数调用“instance('table')”不会返回该实例的文档节点,而是返回最外层的元素。您可能需要编写
nodeset=“instance('table')/self::results/result”
。当我使用完整路径时,我什么也得不到:tbody xf:repeat nodeset=“instance('table')/results/result”我想知道表实例中的根元素是否命名为“results”。如果是这样,请记住函数调用“instance('table')”不会返回该实例的文档节点,而是返回最外层的元素。您可能需要编写
nodeset=“instance('table')/self::results/result”
。我最终对表使用分页并以这种方式限制迭代次数:我最终对表使用分页并以这种方式限制迭代次数: