Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.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
使用jquery从xsl转换刷新表内容_Jquery_Html_Xml_Xslt - Fatal编程技术网

使用jquery从xsl转换刷新表内容

使用jquery从xsl转换刷新表内容,jquery,html,xml,xslt,Jquery,Html,Xml,Xslt,我正在尝试使用xsl转换从xml服务状态更新数据,并将数据附加到表中。 如您所见,我使用xsl:value of从xml文件中提取所需的数据。这些数据在时间上是可变的,因此最终会发生变化 这是一个示例表格式 我尝试使用.load()jquery函数,但没有产生预期效果,它使用svc:data1中的数据破坏了表结构 我想要的是使用xsl transform接收的数据更新表的每个单元格,而不刷新页面。有什么想法吗 xsl:variable是否有助于将数据存储到其他位置 示例代码: <hea

我正在尝试使用xsl转换从xml服务状态更新数据,并将数据附加到表中。
如您所见,我使用
xsl:value of
从xml文件中提取所需的数据。这些数据在时间上是可变的,因此最终会发生变化

这是一个示例表格式


我尝试使用
.load()
jquery函数,但没有产生预期效果,它使用
svc:data1
中的数据破坏了表结构

我想要的是使用xsl transform接收的数据更新表的每个单元格,而不刷新页面。有什么想法吗

xsl:variable
是否有助于将数据存储到其他位置

示例代码:

<header>
  <script>
    function autoRefresh()
    {
      <!-- do something here -->
      $("#tbl").load(window.location.href);
    }

    setInterval('autoRefresh()', 2000);
  </script>
</header>

<body onLoad="autoRefresh()">
  <table id="tbl" border="1">
    <tr>
      <td>
        <b>Text1</b>
        <p>
          <xsl:value-of select="svc:data1"/>
        </p>
      </td>
      <td>
        <b>Text2</b>
        <p>
          <xsl:value-of select="svc:data2"/>
        </p>
      </td>
      <td>
        <b>Text3</b>
        <p>
          <xsl:value-of select="svc:data3"/>
        </p>
      </td>
    </tr>
  </table>
</body>

函数autoRefresh()
{
$(“#tbl”).load(window.location.href);
}
setInterval('autoRefresh()',2000);
文本1

文本2

文本3


首先,我认为您不需要刷新页面,因为JS是一种动态语言。只需对要更新的元素进行分类或标识:

<body onLoad="autoRefresh()">
   <table id="tbl" border="1">
       <tr>
           <td>
              <b>Text1</b>
              <p id="p1">
              </p>
           </td>
           <td>
               <b>Text2</b>
               <p id="p2">
               </p>
           </td>
           <td>
               <b>Text3</b>
               <p id="p3">
               </p>
           </td>
           </tr>
     </table>
</body>

文本1

文本2

文本3

然后,您应该定期呼叫服务并请求数据:

<script>
     (function service() {
         $.ajax({
             url: 'ajax/test.html', 
             success: function(data) {
                  $('#p1').html("<xsl:value-of select=\""+data["svc:data1"]"\"/>");
                  $('#p2').html("<xsl:value-of select=\""+data["svc:data1"]"\"/>");
                  $('#p3').html("<xsl:value-of select=\""+data["svc:data1"]"\"/>");
             },
             complete: function() {
                  // Schedule the next request when the current one's complete
                  setTimeout(service, 2000);
             }
         });
      })();

</script>

(功能服务(){
$.ajax({
url:'ajax/test.html',
成功:功能(数据){
$('#p1').html(“”);
$('#p2').html(“”);
$('#p3').html(“”);
},
完成:函数(){
//在当前请求完成时安排下一个请求
设置超时(服务,2000年);
}
});
})();
在这里,您可以定期看到ajax请求的示例:


在我看来,您需要使用XHR技术来更新页面的各个部分。有无数种方法可以做到这一点,我不知道XSLT是否适合这项工作。我的第一个猜测是改为使用JSON。@Abel XHR是我想使用的另一个可能的选项,idk,可能更简单。我需要强制使用XML-XSLT,所以JSON不是解决方案。谢谢你的评论。这只做了一点修改。我将
数据
作为一个XmlObject接收,并使用XMLDOM进行处理,因此这比使用
xsl:value of
和其他任何东西都要简单。谢谢你,安德烈斯。