使用 jquery 或 javascript 读取 xml

Reading xml using jquery or javascript

我的 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'));

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