javascript - 使用 jquery 或 javascript 读取 xml

标签 javascript jquery xml nsxmlparser domparser

我的 xml 如下所示,我能够检索项目并从 <title> 等节点获取数据, <description> 。如何从 <media:title> 获取值和<media:credit> , <media:thumbnail>

这就是我获取数据的方式

        var xmlparser = new DOMParser();
        var xmlData = xmlparser.parseFromString(data.text(), "text/xml");
        var items = xmlData.getElementsByTagName('item');
       for(var i = 0; i < items.length; i++){
          var title =  items[i].getElementsByTagName("title")[0].childNodes[0].nodeValue;
          var desc = items[i].getElementsByTagName("description")[0].childNodes[0].nodeValue;
        }
<pre xmlns:content="http://purl.org/rss/1.0/modules/content/" 
                   xmlns:dcterms="http://purl.org/dc/terms/" 
                   xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
<Channel>
  <item>
   <title>List of records</title>
   <description>reading xml</description.
   <media:title xmlns:media="http://search.yahoo.com/mrss/">
     SinkorSwim Trailer
   </media:title>
  <title>Sink or Swim - Trailer</title>
  <description>Jon Bowermaster's documentary</description>        
  <media:description xmlns:media="http://search.yahoo.com/mrss/">
    Jon Bowermaster's documentary on a learn-to-swim camp 
  </media:description>
  <media:credit xmlns:media="http://search.yahoo.com/mrss/" role="Director" 
                             scheme="urn:ebu">
  Jon Bowermaster
  </media:credit>
  <media:status xmlns:media="http://search.yahoo.com/mrss/" state="active"/>
  <media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" 
     type="landscape" url="http://snagfilms-video.jpg"/>
  <media:player xmlns:media="http://search.yahoo.com/mrss/" height="323" 
   url="http://embed.snagfilms.com/embed/player?filmId=00000158-b20c-d8f9-
   affd-b32ce8700000" width="500"/>
  </item>
  <item></item>
  <item></item>
</channel>
</pre>

最佳答案

media:title 中的media 表示 XML 命名空间前缀。命名空间前缀只是命名空间的快捷方式。必须使用 xmlns:media 属性在文档中的某个位置定义命名空间。 然后,您可以使用命名空间感知 getElementsByTagNameNS() 函数来查询 title 元素:

console.log(xml.getElementsByTagNameNS('xmlns:media="http://search.yahoo.com/mrss/"', 'title'));

第一个参数必须传递命名空间名称而不是前缀。

关于javascript - 使用 jquery 或 javascript 读取 xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43379637/

相关文章:

javascript - 如何在 angular2 或 Ionic 中应用 *ngFor

javascript - jquery中如何获取按钮列表的索引

javascript - 加载多个视频而不播放

javascript - 内容未加载到 facebox

xml - Powershell XML 属性命名空间

xml - 查找 xml 节点的完整 xpath

javascript - 如何从 GET 请求收集 Google Analytics 的客户端 ID 服务器端?

javascript - Fancybox - 实现关闭后回调

javascript - 是否可以测试 scrollIntoView 浏览器兼容性?

xml - 如何使用 Powershell 枚举 XML 元素的属性