2011-12-22 14 views
1

GoogleのAdWordsウェブサイトから、複数の要素が同じidのデータを取得します。同じIDを持つ複数の要素を持つ文書の要素のXPATHを取得するにはどうすればよいですか?

与えられた要素のXPathを取得したいと思います。

あなたはページが同じidで複数の要素を含んでいてもよいことを想定し、指定された要素のXPathを計算することができますjQueryの/ JavaScript関数を提案してもらえますか?

同じidの複数の要素を持つべきではないことを私に教えてください。それは...あなたがなど//*[@id='blah'][1][2]を使用してXPathをアクセスすることができます知っている

+0

は、重複 'id'sでサンプルを含めますか? – MattH

+0

これらの要素のうちの特定の要素を取得するXPath式を提供するようにお願いしていますか?または、要素を受け取り、そのノードを選択するXPath式を吐き出すJavaScript関数を探していますか? –

+0

@Iwburk:要素を受け取り、そのXPathを返す関数を探しています。 –

答えて

4

答え、あなたが探しているということである私の考えではありませんでしたか?

+0

はい、私はこれを行う関数を探しています。 –

+3

私はXPathが '[1]'、 '[2]'に基づいていると思います – hugomg

+0

"Fetch data"について説明してください。どのようにして最初に要素を選択していますか? – Martin

0

あなたが望む要素がそのidのn番目の出現であることを知っていれば、Martinの提案が有効になります。

複数の属性を検索して要素を定義することで結果を絞り込むこともできます。たとえば、特定の名前またはクラスのdiv要素に対してIDが一意であることがわかります。そして、あなたが他の要素に相対的に検索することによって、あなたが望む要素を見つけることができるかもしれませんあなたのために十分ではそうでない場合があり

//div[@id='hello' and @name='world'] 

<root> 
    <div id='parent1'> 
     <div id='element1' /> 
     <div id='element2' /> 
    </div> 
    <div id='parent2'> 
     <div id='element1' name='foo' /> 
     <div id='element2' name='bar' /> 
    </div> 
</root> 

あなたは、次の方法で第二の要素2得ることができます::XMLを考えると

/root/div[2]/div[2] 
//div[@id='parent2']/div[@id='element2'] 
//div[@id='element2' and name='bar'] 
//div[@id='element1' and @name='foo']/../div[@id='element2'] 
関連する問題