2009-07-22 14 views
2

をノードを選択します。Javascriptを/ E4Xを使用してJavascriptをE4X:このシナリオを検討して属性値に基づいて

、ブラウザ以外の利用シナリオ(JavascriptのHL7の統合エンジン)で、XMLスニペットを保持する変数があります複数の繰り返しノードを持つ可能性があります。

<pets>  
<pet type="dog">Barney</pet> 
<pet type="cat">Socks</pet> 
</pets> 

コード:

var petsXml; // pretend it holds the above xml value 
//var cat = petsXml['pet']..... ? 

質問:E4Xは使用して、あなたは文字列 '猫' の値を保持type属性を持つ正しいペットのノードを選択することができますか?

アップデート:E4Xと

いくつかの教訓:1つのノードの特定の属性から値を取得するためにvar dog = petsXml.(@type == "dog");

    • は、属性値によって、シングル/最初のノードを選択するvar petType = [email protected];
  • 答えて

    2
    var petsXml; 
    var catList = petsXml.*.(@type == "cat"); 
    

    「フィルタ」hereまたは「パラメータ付きロケート」をhereを参照してください。

    +0

    Pianomanに感謝します。それはうまくいった。私はこのソリューションをpetsXmlとして実装しましたが(@ type == "cat");アスタリスクは倍数が返されることを示していますが、最初の一致が見つからない場合は見つかりませんでしたか? –

    +0

    あなたは絶対に正しいです。 '*'は全ての ''ノードを走査しなければならず、cat>が1つ以上あれば' catList'は配列になります。 –

    関連する問題