2011-12-08 49 views
0

私は〜50種類のスレッドを読んでいますので、これに対する答えを探していますが、jqueryとxmlについて少しは学んだことがありますが、私がやっていることや全く同じ問題を抱えている人を見つけること。私は、CDATAのデータを取得して、列タイトルとして 'id'フィールドを持つ単純なHTMLテーブルに書き込もうとしています。 「私はこの方法で、最初と最後のテキストを取得することができますRead <CDATA> jqueryからの内容

$(document).ready(function() { 
    $.ajax({ 
     type: "GET", 
     url: "catalog.xml", 
     dataType: "xml", 
     success: xmlParser 
    }); 
    }); 

function xmlParser(xml) { 
    $(xml).find("cd").each(function()({ 
     $(".main").append('<div class="book"><div class="title">' + 
     $(this).find("disk:first").text() + '</div><div class="description">' + 
     $(this).find("disk:last").text() + '</div>'); 
    }); 
    } 

が、私のことができます。

<?xml version="1.0" encoding="ISO-8859-1"?> 
<catalog> 
    <cd> 
    <disk id="artist"><![CDATA[Mikey]]></disk> 
    <disk id="title"><![CDATA[Greatest hits]]></disk> 
    <disk id="year"><![CDATA[8675309]]></disk> 
    </cd> 
    <cd> 
    . 
    . 

、次のコード:例を使用

は、私は、次のXMLを持っています間に何かを得ることができません。これは、レコード内の「欠落」フィールドを許可しません。私は 'id'フィールドの値に関連するCDATAの内容を取得したいと思いますが、jqueryでこれを行う方法を見つけることができませんでした。どんな助けもありがとう!ありがとう!

+2

チェック:http://stackoverflow.com/questions/652159/parsing-xml-with-cdata-with-jquery –

+0

あなたはIDによって要素にアクセスするためにjQueryの属性セレクタを使用してみましたか? (例: '$(this)).find( 'disk [id =" artist "]').get(0).firstChild.nodeValue;' – Aaron

答えて

0
function xmlParser(xml) { 
    var parts = ['artist', 'title', 'year']; 

    $("cd", xml).each(function() { 
     var $book = $('<div class="book">'); 

     for (var i=0; i<parts.length; i++) { 
      $("<div>", { 
       'class': parts[i], 
       'title': parts[i], 
       'text' : $("disk[id="+parts[i]+"]", this).text() 
      }).appendTo($book); 
     } 
     $book.appendTo(".main"); 
    }); 
} 
関連する問題