如何解析此XSL文件并读取将其嵌入HTML文件中的元素

时间:2017-02-09 17:22:21

标签: javascript json xml html5 xslt

我目前正在尝试为IceCast电台设置一个主要的原始HTML5网络播放器。我以前使用ShoutCast并且能够从XML文件中提取数据。 IceCast只通过XSL文件提供数据,我不确定我是如何实际读取该文件以获取我想要的信息。

有问题的文件is here并包含此JSON内容:

{ "icestats": 
  "admin":"calhoun347@gmail.com",
  "host":"gahgahshortme",
  "location":"The Cloud",
  "server_id":"Icecast 2.4.2",
  "server_start":"Thu, 09 Feb 2017 12:00:50 -0500",
  "server_start_iso8601":"2017-02-09T12:00:50-0500",
  "dummy":null}
}

我想阅读标题元素,并在网页Reusable-Box.me上显示 - 当前时间 - 文字

  

这是进展中的工作文本

显示。

此外,我希望Reusable-Box.me上的页面每隔10秒左右刷新一次。

我想我知道如何做最后一部分,我之前用XML文件做过,同样的方法应该有用(我认为)。但我仍然在前两部分迷失了。

我不是说我希望有人为我做这项工作,但我在IceCast的任何文档中找不到任何示例 - 因为我正在做的事情似乎非常基本。

1 个答案:

答案 0 :(得分:0)

看一下这个文档

http://icecast.org/docs/icecast-2.4.1/server-stats.html

Icecast在内部使用XML,因此您无法通过HTTP请求轻松获取它。 但是Icecast可以使用驻留在Icecat“web”目录中的XSL文件将其内部XML数据表示转换为您喜欢的任何格式。 当您在浏览器中打开Icecast状态页面时

http://reusable-box.me:8000/

您会看到HTML中内部XML数据的HTML表示形式,即status.xsl XSL文件生成的默认行为。

当您向

提出请求时

http://reusable-box.me:8000/status-json.xsl

您可以通过status-json.xsl样式表获得JSON格式的Icecast数据。

如果您需要XML,可以将status-xml.xsl文件放在以下内容中:

<xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0">
<xsl:output indent="yes" encoding="UTF-8" />
<xsl:template match="@* | node()">
    <xsl:copy>
          <xsl:apply-templates select="@* | node()"/>
    </xsl:copy>
</xsl:template>
</xsl:stylesheet>

在Icecast网站目录中并通过

请求

http://reusable-box.me:8000/status-xml.xsl

你会得到XML。

但是你应该更好地使用JSON,因为使用Javascript解析起来要容易得多,创建一个脚本(例如jQuery),每10秒就会拉http://reusable-box.me:8000/status-json.xsl,因此你会得到一个Javascript从JSON自动创建的对象将包含所有数据。

希望这有帮助!