2016-09-13 7 views
0

私には、例えば、HTMLドキュメントをネストされたdiv要素を取得する必要があります:Xpathを使ってネストされたdivを取得するには?

<div id="maindiv> 
    <div id='firstdiv'> 
    </div> 
    <div id="otherid"> 
     <div id="anotherdiv"><div id="divid"></div> 
    </div> 
</div> 

私はanotherdivのコンテンツを取得する必要があります。 maindivがどれほど深く、メイン文書内にどれくらい深く入っているのかが分かりません。anotherdivmaindivの範囲内にある可能性があります。

は現在、私はやってる:

var doc = new HtmlAgilityPack.HtmlDocument(); 
doc.LoadHtml(content); 

var main = doc.GetElementbyId("maindiv").InnerHtml; 
doc.LoadHtml(main); 

var another = doc.GetElementbyId("anotherdiv"); 

これが正常に動作します。しかし、XPathを使用して必要なdivを取得するより良い方法はありますか?

+0

/maindiv/otherid /テキストを使用することができます – Oscar

答えて

1

xパスを使用して子供を抽出する場合は "/"を使用しますが、 "/ * /"でグランド子供を抽出することもできますし、要素の深さを知らない場合は "//"を使用することもできます。

あなたのdivだけで

//div[@id='anotherdiv'] 

あるいは

//*[@id='anotherdiv'] 
を使用する方法を「深く」を知らない場合にはそのIDを使用 [@id='<id_you_are_looking_for'](クラスによって抽出するのと同じ方法)

によって要素を抽出します

選択したIDを持つ要素を抽出します。 )(それが十分でなければなりませんので

IDは一意であるshoulいますが、別のdivは、メインのdivであるSHUREを作りたい場合は、

//div[@id='maindiv']//div[@id='anotherdiv] 
関連する問題