0

非常に役に立たないタグを含む大きな .xml ファイルからデータを取得しようとしています。これらのタグはすべてほとんど同じであり、xml 出力について私ができることは何もありません。これらの xml ドキュメントは非常に定期的に更新されるため、Web サイトが関連データを簡単に取得するプロセスを自動化したいと考えていました。私はxmlファイルを取得し、jqueryから :contains() アクションを使用したいと思っていましたが、うまくいかないようです。

XMLファイルはこちら

これが私のコードです:

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
</head>
<body>
<p id="manpower"></p>
<script>
$(document).ready(function(){
$.ajax({
    type: "GET",
    url: "test.xml",
    dataType: "xml",
    success: function(xml) {
    $title = $(xml).find( "Key");

    $( "#manpower" ).append( $title.text() );
    }
});
});
</script>
</body>
</html>

したがって、上記のコードは正常に機能し、すべての「キー」を提供しますが、最初に :contains('time_cost') を見つけてから、子と階層を横断して、xml ファイルの末尾にあるマンパワー データに到達したいと思います。このようにする必要がある理由は、完全なファイルにはマンパワーへの参照が複数あるが、time_cost は一意であるためです。誰かが少なくとも最も近い機能を機能させるのを手伝ってくれたら、とてもありがたいです。

私が試してみました:

$title = $(xml).find( "Key:closest('time_cost')" );

しかし、うまくいきません。私はjQueryにまったく慣れていないので、おそらく非常に些細なことをしているでしょうか?

これはローカルの jsFiddle バージョンです: http://jsfiddle.net/yN3Sj/4/

4

1 に答える 1

1

Valueキーを持つ要素を与えるようなことをしてみませんかmanpower

xmlDoc = $.parseXML( xml ),
$xml = $( xmlDoc ),
$time_cost = $(xml).find( "Key:contains('time_cost')" ),
$manpower = $('Key:contains("manpower")', $time_cost.parent()).parent();

デモ:フィドル

于 2013-04-04T03:20:04.373 に答える