javascript - XML 到 HTML 的问题

标签 javascript xml xls

这是我的 xml:

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="movies.xsl"?>
<root>
<Diary>
<Event EventName="J.Edgar" Classification="2011 Movies" EventStart="2012-03-19T07:00:00+00:00" EventEnd="2012-03-19T08:00:00+00:00" />
<Event EventName="Titanic" Classification="1997 Movies" EventStart="2012-03-19T09:00:00+00:00" EventEnd="2012-03-19T10:00:00+00:00" />
</Diary>
</root>

我有两个选项来创建我需要的内容:

  1. <?xml version="1.0" encoding="ISO-8859-1"?>
    
    <xsl:template match="Event">
      <html>
      <body>
      <h2>Best movies</h2>
      <p>Here you can find the top movies ever.</p>
      <table border="1">
        <tr bgcolor="#9acd32">
          <th>Movie</th>
          <th>Year</th>
          <th>Start Time</th>
          <th>End Time</th>
        </tr>
        <tr>
          <td><xsl:value-of select="@EventName"/></td>
          <td><xsl:value-of select="@Classification"/></td>
          <td><xsl:value-of select="@EventStart"/></td>
          <td><xsl:value-of select="@EventEnd"/></td>
        </tr>
      </table>
      </body>
      </html>
    </xsl:template>
    
    </xsl:stylesheet>
    

2.

    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <script type="text/javascript">
            function loadXMLDoc(fName){
                if (window.XMLHttpRequest){
                    xhttp=new XMLHttpRequest();
                } else {
                    xhttp=new ActiveXObject("Microsoft.XMLHTTP");
                }
                xhttp.open("GET",fName,false);
                xhttp.send("");
                return xhttp.responseXML;
            }

            xmlDoc=loadXMLDoc("movies.xml");

            function displayEvents(){
                var eventsO = xmlDoc.getElementsByTagName("Event");
                var tableO = document.createElement('table'), newRow, newCell;
                for(i=0; i<eventsO.length; i++){
                    newRow = tableO.insertRow(-1);
                    newCell = newRow.insertCell(-1);
                    newCell.appendChild(document.createTextNode(eventsO[i].getAttribute('EventName')));
                    newCell = newRow.insertCell(-1);
                    newCell.appendChild(document.createTextNode(eventsO[i].getAttribute('Classification')));
                }
                document.body.appendChild(tableO);
            }
            window.onload=displayEvents;
        </script>
    </head>
    <body>

    </body>
</html>

您能尝试纠正我的这些代码吗?

我想做以下功能:

  1. 从另一个非本地站点加载外部 xml。

  2. 拥有电影列表,当您按电影时,会出现一个弹出窗口或一个新页面,您可以了解有关该电影的更多信息。但是我如何动态创建它,以便弹出窗口中的信息保持不变,但电影的名称会根据您单击的电影而改变......?

  3. 匹配“Event”正在运行,但可能是错误的..(?)

最佳答案

应该有一个 xsl:for-each 来循环显示电影,如下所示:

<?xml version="1.0" encoding="ISO-8859-1"?>

<xsl:template match="/">
  <html>
  <body>
  <h2>Best movies</h2>
  <p>Here you can find the top movies ever.</p>
  <table border="1">
    <tr bgcolor="#9acd32">
      <th>Movie</th>
      <th>Year</th>
      <th>Start Time</th>
      <th>End Time</th>
    </tr>

    <xsl:for-each select="root/Diary/Event">      
        <tr>
          <td><xsl:value-of select="@EventName"/></td>
          <td><xsl:value-of select="@Classification"/></td>
          <td><xsl:value-of select="@EventStart"/></td>
          <td><xsl:value-of select="@EventEnd"/></td>
        </tr>
    </xsl:for-each>

  </table>
  </body>
  </html>
</xsl:template>

</xsl:stylesheet>

关于javascript - XML 到 HTML 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9801036/

相关文章:

javascript - 如何在 Javascript/HTML5 中解析 Excel (XLS) 文件

javascript - 渲染从 draft-js 保存的 html

javascript - 使用 fabric.js 将 Canvas 形状绘制为椭圆形 lauout

javascript - jquery 添加和删除类

java - listView 中项目的语言未更改 (Android)

html - 使用xml注释生成格式化的html输出

xls - 使用python将文本文件转换为excel文件

javascript - 如何分块播放加载的声音?

Python & lxml/xpath : Parsing XML

xml - 通过菜单按钮调用首选项时强制关闭消息