2012-02-09 11 views
1

におけるタグのXPathを見つけるために、この問題を解決するために私を助けてください:(、 、私はこのようなHTML文書ファイルがあります。私はC#2のBrowserControlで働いてどのようにHTML

<html> 
<title> 
news 
</title> 
<body> 
<br> 
<br/> 
<ul> 
    <li>Coffee</li> 
    <li>Tea 
    <ul> 
     <li>Black tea</li> 
     <li>Green tea</li> 
    </ul> 
    </li><li>Milk</li> 
    <li>Milk2</li> 
</ul> 
</body> 
</html> 

私をマウスを<li>Black tea</li>でクリックすると、このタグのxPathをどのように取得できますか?C#のBrowserControlを使用すると、マウスの現在の位置のinnerHTMLまたはOuterHTMLまたはテキストが表示されます。

答えて

1

このタグのXPathは、実際にはXPathを自分で構築する必要がありますが、HTML Agility Packを使用する場合はこれが簡単です。

HTML Agilityパックを使用すると、HTML形式の文書(一般に整形式ではないXML)を適切に構成されたXMLのように読み込んで、XPathクエリを使用できます。次に、HTML Agility Packにドキュメントをロードし、XPathを使用して特定の文字列を含む要素を検索するプログラムでノードを検索します。次に、ノードを検索したときに、 XPathは各親を歩いて行く。だから、完全に

:マウスクリックで

  1. 読むノードは、与え -

    <li>Black Tea</li> 
    
  2. 解析内容とノード名は -

    Contents = Black Tea, Name = li 
    
  3. ビルドXPathクエリを与える:

    XPathクエリを構築するための
    //Name[contains(., Contents)] 
    

    (この場合は、//リー( '紅茶')。)

  4. トラバース各親、与える - UL /李、その後のLi/UL /李を、その後、 UL /リチウム/ UL /李、最終的にはその後、ボディ/ UL /リチウム/ UL/Liと -

    html/body/ul/li/ul/li 
    

だからここに鍵が作成、HTML敏捷性パックを経由して一筆書きのように文書を取得することですノードを取得するための一般的なクエリ、次にノードからの完全なクエリを構築します。

これは役に立ちますか?

+0

よろしくお願いします。@Dave Kerr、ありがとうございます。 <3 – sonvx

関連する問題