HTML を XML に変換するために sgmlreader を使用しています。出力は XmlDocument オブジェクトに送られ、InnerText メソッドを使用して Web サイトからプレーン テキストを抽出できます。JavaScriptを削除して、テキストをできるだけきれいに見せようとしています。xml をループして削除するの<script type="text/javascript">
は簡単ですが、jquery やスタイリングがどのタグにもカプセル化されていないと、壁にぶち当たります。誰でも私を助けることができますか?
サンプルコード:
ステップ 1: webclient クラスを使用して HTML をダウンロードしたら、それを保存し、テキスト リーダー クラスでファイルを開きます。
ステップ 2: sgmlreader クラスを作成し、入力ストリームをテキスト リーダーに設定します。
// setup SGMLReader
Sgml.SgmlReader sgmlReader = new Sgml.SgmlReader();
sgmlReader.DocType = "HTML";
sgmlReader.WhitespaceHandling = WhitespaceHandling.All;
sgmlReader.CaseFolding = Sgml.CaseFolding.ToLower;
sgmlReader.InputStream = reader;
// create document
doc = new XmlDocument();
doc.PreserveWhitespace = true;
doc.XmlResolver = null;
doc.Load(sgmlReader);
ステップ 3: xmldocument を作成したら、doc.InnerText を使用してプレーン テキストを取得します。
ステップ 4: 次のように JavaScript タグを簡単に削除できます。
XmlNodeList nodes = document.GetElementsByTagName("text/javascript");
for (int i = nodes.Count - 1; i >= 0; i--)
{
nodes[i].ParentNode.RemoveChild(nodes[i]);
}
いくつかのものはまだすり抜けています。私がスクリプしている特定のウェブサイトの出力の例を次に示します。
Criminal and Civil Enforcement | Fraud | Office of Inspector General | U.S. Department of Health and Human Services
#fancybox-right {
right:-20px;
}
#fancybox-left {
left:-20px;
}
#fancybox-right:hover span, #fancybox-right span
#fancybox-right:hover span, #fancybox-right span {
left:auto;
right:0;
}
#fancybox-left:hover span, #fancybox-left span
#fancybox-left:hover span, #fancybox-left span {
right:auto;
left:0;
}
#fancybox-overlay {
/* background: url('/connections/images/wc-overlay.png'); */
/* background: url('/connections/images/banner.png') center center no-repeat; */
}
$(document).ready(function(){
$("a[rel=photo-show]").fancybox({
'titlePosition' : 'over',
'overlayColor' : '#000',
'overlayOpacity' : 0.9
});
$(".title-under").fancybox({
'titlePosition' : 'outside',
'overlayColor' : '#000',
'overlayOpacity' : 0.9
})
});
その jquery とスタイリングを削除する必要があります。