我怎么能解析只有从一个单一的html行文本
本文关键字:单一 一个 html 文本 怎么能 | 更新日期: 2023-09-27 18:14:58
我有这样一行:
<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和工具提示,并将其清空,只留下希伯来语单词和部分:
或者在本例中:
<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)">
再一次留下所有的希伯来语单词和:
我该怎么做呢?
我有这个方法我用来解析文本:
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;
}
它工作得很好,但是它正在获取文件而不是lines/text
如果处理行,就不能使用XML解析器(如果没有完整的结构,就不能遍历XML树结构)。
但这里建议:https://stackoverflow.com/a/19524158/1648371
可以使用
string noHTML = Regex.Replace(inputHTML, @"<[^>]+>| ", "").Trim();
为了检索字符串而不是用空格替换HTML字符,您可以将它们替换为输入中没有的特殊字符(如瑞典字母
Regex.Matches(noHTML, "å", RegexOptions.IgnoreCase))
用HtmlDocument.LoadHtml(string html)
:
HtmlDocument.Load(string path)
string html = "<a onmouseover='"EnterContent('ToolTip....";
var htmlDoc = new HtmlAgilityPack.HtmlDocument();
htmlDoc.LoadHtml(html);