1

//[dataOptions[id]]うまくいくようです

しかし、//[dataOptions[id=value]]動作しません

私は、等しいdataOptions場所のすべての親を取得しようとしています。2番目のものは有効ですか?クエリを解決するために使用しているJPathにバグがあるのではないかと疑っています。しかし、私のクエリが有効かどうかはわかりません。dataOptions.idval

[
{
    "dataOptions": {
        "id": "id1",
        "count": "10"
    },
    "name": "Leon",
    "children": [
        {
            "dataOptions": {
                "id": "id2",
                "count": "10"
            },
            "name": "Leon",
            "children": [],
            "isExpanded": false
        },
        {
            "dataOptions": {
                "id": "id2",
                "count": "10"
            },
            "name": "Leon",
            "children": [],
            "isExpanded": false
        }
    ],
    "isExpanded": false
},
{
    "dataOptions": {
        "id": "id3",
        "count": "10"
    },
    "name": "Leon",
    "children": [],
    "isExpanded": false
},
{
    "dataOptions": {
        "id": "id4",
        "count": "10"
    },
    "name": "Leon",
    "children": [],
    "isExpanded": false
}

]

4

3 に答える 3

2

//[dataOptions[id]]うまくいくようです

しかし、//[dataOptions[id=value]]動作しません

これらは両方とも不正な構文です(述語の前にノード-テストを付ける必要があります)。

に等しいdataOptionsの すべての親を取得しようとしています。dataOptions.idval

使用

//*[dataOptions[id=val]]

これにより、と子が同じsting値を持つ子要素を持つすべての要素が選択されdataOptionsます。idval

またはval、が要素名ではなくリテラル文字列の場合は使用し、次に:を使用します。

//*[dataOptions[id='val']]

更新:OPは、最初に質問されてから3時間後に質問を編集しましたこれで、入力がJSONであることがわかります。XPathはJSONを認識しません。XMLドキュメントでのみ動作します。したがって、この質問はXPathとしてタグ付けしないでください。

于 2012-06-24T03:35:17.520 に答える
1

JPathを使用しようとしているJSONデータを表示できる場所はありますか?

データをクエリする連鎖メソッドを使用することもできます。

var jp = new Path(JSONDATA);

jp.$('dataOptions').$(function(n){
    return( n.$('id').json == yourvalue );
}).json;

JPathのXPath部分は、単にいくつかの正規表現を使用して上記のようなコードを作成します。

于 2012-06-26T01:32:45.897 に答える
1

ShaggyInjun、あなたは次のようなものを探していると思います。

//dataOptions[id]
//dataOptions[id="id2"]

私は最近、「defiant.js」と呼ばれるjs-libを作成しました。これを使用して、XPathを使用してJSON構造でクエリを実行できます。このコンテキストに入れるために-私はあなたのJSONデータをこのページに貼り付けました:

http://www.defiantjs.com/#xpath_evaluator

...そして、構造に対してさまざまなXPathクエリを視覚的にテストしました。評価者は、JSONとそれに対応するXMLの両方で一致を強調表示します。

「defiant.js」とそのサイトがお役に立てば幸いです。

于 2014-01-02T12:50:30.333 に答える