我有这一行:
<a onmouseover="EnterContent('ToolTip','לחיילים ולתושבי הדרום באהבה','<u><span style=color:#000099;>כתב: רוטרית בתאריך: 22.07.14 שעה: 08:56</span></u><br>המון רצון לעזור, להתנדב, להעניק, לפנק, לאהוב, ולחבק קיים היום בעם.<br>נצלו אשכול זה לפרסם דברים שיוכלו לעזור לחיילים ולתושבי הדרום.<br><br>חיילים, ותו...'); Activate();" onmouseout="deActivate()" href="javascript:void(0)">
从这一行开始,我只需要获得希伯来语。 要删除所有标签和onmouseover和工具提示和无效,只留下希伯来语和部分中的单词:בתאריך:22.07.14שעה:08:56
或者在这种情况下:
<a onmouseover="EnterContent('ToolTip','אין לדווח בפורום על תנועת כוחות, סדרי כוחות, פעילות מבצעית וכל דיווח המסכן חיי חיילים','<u><span style=color:#000099;>כתב: מובחר בתאריך: 17.07.14 שעה: 23:20</span></u><br>[anchor:אשכול עוגן מתאריך 17.07.14 בשעה 23:20 על-ידי Maya, (גלובל)]במסגרת הכניסה הקרקעית במבצע צוק איתן, ההנהלה פונה אליכם ומבקשת בכל לשון של בקשה...'); Activate();" onmouseout="deActivate()" href="javascript:void(0)">
再次留下所有希伯来语单词并且:מתאריך17.07.14בשעה23:20
我该怎么做?
我有这个用来解析文本的方法:
public List<string> CreateTextList(string filePath)
{
List<string> text = new List<string>();
var htmlDoc = new HtmlAgilityPack.HtmlDocument();
htmlDoc.OptionFixNestedTags = true;
htmlDoc.Load(filePath, System.Text.Encoding.GetEncoding(65001));
if (htmlDoc.DocumentNode != null)
{
var nodes = htmlDoc.DocumentNode.SelectNodes("//a/b");
foreach (var node in nodes)
{
text.Add(node.InnerText);
}
}
text = Filters.filterNumbers(text);
return text;
}
它运行良好,但是文件不是行/文本。
答案 0 :(得分:1)
而不是HtmlDocument.Load(string path)
使用方法HtmlDocument.LoadHtml(string html)
:
string html = "<a onmouseover=\"EnterContent('ToolTip....";
var htmlDoc = new HtmlAgilityPack.HtmlDocument();
htmlDoc.LoadHtml(html);
答案 1 :(得分:1)
嗯,如果使用行,则不能使用XML解析器(如果没有整个结构,则无法遍历XML树结构)。
但正如此处所示:https://stackoverflow.com/a/19524158/1648371
您可以使用
string noHTML = Regex.Replace(inputHTML, @"<[^>]+>| ", "").Trim();
要检索字符串而不是用空格替换HTML字符,可以用输入中没有的特殊字符替换它们(如瑞典字母å),然后
Regex.Matches(noHTML, "å", RegexOptions.IgnoreCase))