2017-02-28 12 views
1

このコードを使用してローカルの.xmlファイルを読み取ることができます。私の質問は、XMLファイル全体をループせずに、すべての要素に固有のID(子ノードとして)がある場合、特定のXML要素を取得できるかどうかです。たとえば、id = 3のアイテムの名前と年を取得します。特定のデータをXMLから入手する

 $.ajax({ 

        type: "GET", 
        url: "Cars.xml", 
        dataType: "xml", 
        success: getDataFromXml 

       }); 
    function getDataFromXml(xml){ 

      $(xml).find("Car").each(function(){ 
      .... 
    } 

XML

<Cars> 
<Car> 
    <Id>1</Id> 
    <Name>Tornado</Name> 
    <Model>Ferrari</Model> 
    <Year>1943</Year> 
</Car> 
    <Car> 
    <Id>2</Id> 
    <Name>Tiger</Name> 
    <Model>Ferrari</Model> 
    <Year>1943</Year> 
</Car> 
    <Car> 
    <Id>3</Id> 
    <Name>Cat</Name> 
    <Model>Ferrari</Model> 
    <Year>1943</Year> 
</Car> 
</Cars> 
+0

あなたがHTMLノードを検索するために使用してXMLノードを見つけるために、同じ[jQueryのセレクタ](http://api.jquery.com/category/selectors/)を使用することができます。 –

+0

http://stackoverflow.com/questions/7949​​752/cross-browser-javascript-xml-parsingを参照してください – shrinathM

+0

例を示してくださいすべての要素をループさせないようにする方法。 – Procode

答えて

1
var xmlDoc = $.parseXML(xml), 
$xml = $(xmlDoc), 
$cars = $xml.find("Car"); 

これはそれを行います。 For more information, look here

findhasを使用して要素を取得できます。最初にfindの要素carを入力してから、hasidの値が3の値であるかどうかを確認します。これはあなたに$.find("Car").has("Id:contains('3')")を与えるでしょう。私はあなたのための例を作った、Id=3Car Elementを返します。今では、すべての "Car-Elements"を反復処理する必要はありません。

var xml = "<Cars><Car><Id>1</Id><Name>Tornado</Name><Model>Ferrari</Model><Year>1943</Year></Car><Car><Id>2</Id><Name>Tiger</Name><Model>Ferrari</Model><Year>1943</Year></Car><Car><Id>3</Id><Name>Cat</Name><Model>Ferrari</Model><Year>1943</Year></Car></Cars>"; 
 

 
var xmlDoc = $.parseXML(xml); 
 
var $xml = $(xmlDoc); 
 
var $cars = $xml.find("Car").has("Id:contains('3')"); 
 

 
console.log($cars[0].innerHTML)
.as-console-wrapper { 
 
    min-height: 100%; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

+0

id 3の要素にのみアクセスするには? – Procode

+0

私はあなたがxmlを知らないので、それを選択する方法はわかりません。あなたの質問にスニペットを追加し、更新したかどうか教えてください。 – DomeTune

+0

ここで、xml全体をループせずにid = 3の車のすべての要素をどうやってaccecできますか? – Procode

関連する問題