通过AJAX显示XML和XSL

时间:2014-12-02 15:20:40

标签: ajax xml xslt

我正在尝试在通过AJAX提取的HTML页面上显示我的XML和XSL。我已经将XML链接到了HTML页面,但无论我做什么,XSL似乎都不会显示出来。

这是我的XML代码:

<tv_guide>
<channel>
<channel_id> 1 </channel_id>

    <program> <!--beginning of channel1-->
        <title>News</title>
        <time>HELP</time>
        <duration_id>1</duration_id>
        <description>ABCD</description>
    </program>
</channel>

这是我的XSL代码:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output method='html'/>
<xsl:template match="/">

    <xsl:for-each select="program">

    <td>
    <xsl:attribute name="id">
    <xsl:value-of select="duration_id"/> </xsl:attribute>
    <xsl:attribute name="colspan">
    <xsl:value-of select="duration"/>
     </xsl:attribute>
     <xsl:value-of select="name"/> </td>

    </xsl:for-each >

        </tr>



</xsl:template>

</xsl:stylesheet>

这是我的AJAX代码:

function loadXMLDocWed()
{
var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState===4 && xmlhttp.status===200)
    {
    document.getElementById("tabs-3").innerHTML=xmlhttp.responseText;
    }
}
xmlhttp.open("GET","URL",true);
xmlhttp.send();
}

任何您认为可能会有所帮助的建议都会受到高度赞赏,因为我已经暂时坚持了一段时间。

1 个答案:

答案 0 :(得分:0)

xslt脚本存在问题。 你试图为每个人做这样的事情

<xsl:for-each select="program">

在xslt中如果你想获得一个嵌套元素,程序在你的情况下你有两个选项。

递归&#34;搜索&#34;对于这样的元素。

<xsl:for-each select="//program">

像这样的完整路径。

<xsl:for-each select="tv_guide/channel/program">

您可以在xslt找到更多参考资料。

三木