我怎么能解析只有从一个单一的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

我怎么能解析只有从一个单一的html行文本

如果处理行,就不能使用XML解析器(如果没有完整的结构,就不能遍历XML树结构)。

但这里建议:https://stackoverflow.com/a/19524158/1648371

可以使用

string noHTML = Regex.Replace(inputHTML, @"<[^>]+>|&nbsp;", "").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);
相关文章: