2012-04-28 10 views
0

からLANGと緯度を抽出するために、HTMLの敏捷性パックを使用します。私は次のHTMLからロングと緯度を抽出するために、HTMLの敏捷性パックを使用したいのJavascript

<script type="text/javascript"> 
    var map = new google.maps.Map($("canvas"), {zoom : 14, mapTypeControl : false, draggable: true, scrollwheel : false, mapTypeId : google.maps.MapTypeId.HYBRID, center : new google.maps.LatLng(45.4623, -77.5425)}); 
</script> 

つまり、私は2を入力する必要があります別の値45.4623の値と-77.5425の値

誰でも助けてください。私の正規表現のスキルはあまり良くありません。 :-(

答えて

1

ウェブサイトを知らなくても、どのようにマッチするかは分かりません。しかし、これはうまくいくかもしれません。

HtmlDocument doc = new HtmlDocument(); 
//Load your website... 
//doc.Load(.... 
HtmlNode scriptNode = doc.DocumentNode.SelectSingleNode("//script[contains(text(),'google.maps.Map']"); 
Match match=  Regex.Match(scriptNode.InnerText, "\\.LatLng\\((?<Lat>-?[\\d.]+), (?<Lng>-?[\\d.]+)\\)"); 
string latitude = match.Groups["Lat"].Value; 
string longitude = match.Groups["Lng"].Value; 

あなたが後にあるスクリプトタグは、テキストgoogle.maps.Mapを含む最初の1である場合にのみ機能します。

+0

それは素晴らしいです、ありがとう。スクリプトノードinnertextを解析して、 "google.maps.map"が含まれているかどうかを確認し、問題を修正します –

0

HtmlAgilityPackは、アングルブラケットノードを解析するのに最適ですが、ノード内のJavaScript構文は何も知らないため、「LatLng \(([^ \ ] +)\)」を選択し、Match.Groups [1] .Valueを抽出します。

+0

上記のスクリプトタグがページの3番目のタグであれば、アジリティパックでどのように取得できますか?私は内部のテキストを取得し、正規表現と一致すると仮定しますか? –

関連する問題