Javascript JS:解码、过滤并重新附加转义的XML文件

Javascript JS:解码、过滤并重新附加转义的XML文件,javascript,html,xml,import,filter,Javascript,Html,Xml,Import,Filter,我经常访问的一个网站将其整个电视节目表转义/编码在中,该节目表作为中的第一项。他们没有这个时间表的RSS提要,这就是为什么我总是检查它。这段非常长的代码的第一部分如下: txt = '%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%0A%3Cchannel_guide%20operating-unit... <episode code="1336454" recording_type=""> &

我经常访问的一个网站将其整个电视节目表转义/编码在
中,该节目表作为
中的第一项。他们没有这个时间表的RSS提要,这就是为什么我总是检查它。这段非常长的代码的第一部分如下:

txt = '%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%0A%3Cchannel_guide%20operating-unit...
<episode code="1336454" recording_type="">
<title>NAME OF EPISODE</title>
<description></description>
<series id="12345"/>
<content-rating>Ratings N/A</content-rating>
<duration minutes="120"/>
<show-time premiere_type="" live="Repeat">
<eastern hour="22" minute="00"/>
<mexico-city hour="21" minute="00"/>
<buenos-aries hour="00" minute="00"/>
</show-time>
</episode>
整个过程是一个巨大的
XML
文件。在我的本地文本编辑器中查看了未被替换的部分后,我发现我最喜欢的每一个节目都有自己独特的5位序列号。此外,我还发现整个计划的
HTML
是动态构建的

在unscaped
XML
中,一集的代码块如下所示:

txt = '%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%0A%3Cchannel_guide%20operating-unit...
<episode code="1336454" recording_type="">
<title>NAME OF EPISODE</title>
<description></description>
<series id="12345"/>
<content-rating>Ratings N/A</content-rating>
<duration minutes="120"/>
<show-time premiere_type="" live="Repeat">
<eastern hour="22" minute="00"/>
<mexico-city hour="21" minute="00"/>
<buenos-aries hour="00" minute="00"/>
</show-time>
</episode>
我遇到的这个问题是,在控制台中,所有的节目都会显示出来,而不仅仅是带有特定
showID
的节目。我做错了什么?

怎么样

function toDOM(xmlStr) {
  var container = document.createElement("DIV");

  // feel free to remove the XML declaration here
  // replacing /<\?xml.*?\?>/ with the empty string
  container.innerHTML = str;
  return container.firstChild;
}
注释

  • 当然,这会使用浏览器的HTML解析器解析XML,但是除非XML非常复杂(即使用名称空间或类似的东西),否则应该可以
  • querySelectorAll()
    在较旧的平台上不可用。比较

谢谢您的回答。我不断得到URIError:控制台中的URI格式不正确。谢天谢地,
unescape(txt)
。我仍然不明白为什么需要删除XML声明。请澄清。因为这可能会混淆浏览器的解析器,所以这只是一个警告措施。PS:当然,您可以使用您的平台提供的任何XML解析工具,但我不确定跨平台是否有一致的XML支持。在任何情况下,使用HTML解析器来处理内容可能比其他方法更容易,因为像您的XML这样的琐碎XML。
txt
位于
的第一个
元素中。想法?那么您目前正在做什么来检索此页面?另外,您是否考虑过使用他们的
tvfeed.js
来解析和处理XML?也许一开始就没有必要使用自己的解析器。