1762


C#上でjQueryのように簡単に任意のtagを操作したいです。  
ASP.NETではなく、Windowsアプリケーションです。

要は、HTMLファイルを突っ込んだら、色々HTMLファイルをいじって返してくれるようなプログラムを作りたいと思っているのですが、HTMLをどうやったら簡単にいじれるかで悩んでます。  
C#で使えるjQuery likeなライブラリは無いでしょうか？  
もしくは、上記のようにHTMLをいじりたい場合のオススメの方法などありましたら教えていただきたいです。


CC BY-SA 3.0
2014-12-16T11:27:41.963
1745
2014-12-17T05:30:17.313
2383
question
c# windows html
C#でHTMLを操作したい


[HtmlAgilityPack](http://htmlagilitypack.codeplex.com/)が鉄板だとは思いますが、DOM操作にXPathを使う必要があります。  
LINQを使うことも出来ますが、CSS Selectorに比べると煩雑です。  
あと過去にWebサイトを静的生成するプロダクトで使った時は、思ったほど処理速度が出なかった覚えがあります。

HtmlAgilityPackにCSS
Selector機能を追加した[Fizzler](https://code.google.com/p/fizzler/)というライブラリもあります。  
こちらの方がよりjQuery寄りだと思います。

あと若干オーバースペックかもしれませんが、もっとブラウザ寄りの操作を行いたいのであれば[PhantomJS](http://phantomjs.org/)の[C#バインディング](https://www.nuget.org/packages/PhantomJS/)を使う方法もあります。


CC BY-SA 3.0
2014-12-16T12:52:27.207
1762
2014-12-16T18:04:01.177
2014-12-16T18:04:01.177
3277
3277
1745
answer


まあ、既出ですがやはり、HtmlAgilityPackですね。 使用事例ですが、Webサイトのクローラで抽出に使っています。
いささか時間が経過しているので記憶があやふやにはなっていますが、それほど大きく頭を抱えるトラブルはなかったかと思います。


CC BY-SA 3.0
2014-12-16T22:58:22.327
1822
2014-12-16T22:58:22.327
4188
1745
answer


jQueryの様な操作感という事なので移植したものやC#上から呼び出す方法などを検討しました。  
その結果、  
GitHubで[CsQuery](https://github.com/jamietre/CsQuery)を発見しました。  
また、[呼び出す](https://stackoverflow.com/questions/22216177/how-to-call-jquery-
function-from-c-sharp)方法もありそうです。

場合によっては[JavaScript上でC#を呼び出す](http://qiita.com/akmiyoshi/items/16c4a65731f8ec32e233)ことも検討可能です。


CC BY-SA 3.0
2014-12-17T05:30:17.313
1871
2014-12-17T05:30:17.313
2017-05-23T12:38:55.250
-1
1745
answer