0

当我从提要中获取数据并通过正则表达式提取内容时,我仍然拥有(&o#8230;、&o#8211;、&o#8220 等...[我在前 2 个中添加了 o,以便他们重新格式化] ) 在我的内容文本中。可悲的是,这些也在提要内容的来源中。我自己尝试了一些正则表达式但没有成功:&#[0-9]{4};

我的代码:

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
    {
      
        try
        {        
                          
            SyndicationItem sItem = IsolatedStorageSettings.ApplicationSettings["postovi"] as SyndicationItem; //stores the user chosed item to be displayed
            List <string> CC_List =  IsolatedStorageSettings.ApplicationSettings["ContentList"] as List<string>; //title and content are pulled from feed and put in list

            PageTitle.Text = sItem.Title.Text; 
            PageTitle.FontSize = 40;

            foreach (var item in CC_List)
            {
                int i;
              
                if (item == PageTitle.Text)
                {
                    i = CC_List.IndexOf(item, 0); //index naslova u listi
                    String content = CC_List[i + 1];
                    content = Regex.Replace(content, @"(?<startTag><\s*script[^>]*>)(?<content>[\s\S]*?)(?<endTag><\s*/script[^>]*>)", string.Empty);
                    Match link = Regex.Match(content, @"(?<=<img\s+[^>]*?src=(?<q>['""]))(?<url>.+?)(?=\k<q>)", RegexOptions.Singleline);
                    content = Regex.Replace(content, @"(?></?\w+)(?>(?:[^>'""]+|'[^']*'|""[^""]*"")*)>", string.Empty);
                    content = Regex.Replace(content, "&nbsp;", string.Empty);
                    Uri uri = new Uri(link.Value);
                    slika_clanak.Source = ImageFromUri(link.Value); // gets image
                    content = Regex.Replace(content, @"<p>.*</p>", string.Empty);
                    
                    clanak_textblock.Text = content.Trim(); // reads article text and puts it on screen
                                            
                }
              
            }
4

2 回答 2

2

您是否尝试过HttpUtility.HtmlDecode方法?这是 System.Net 程序集中包含的标准,我不能确切地说它是否也适用于 WP7。

于 2012-04-27T12:35:20.307 回答
0

尽管我发表了评论,但我意识到第二个选项可能是 Html Agility Pack,它有一个 wp7.5 二进制文件在这里找到。您可能会遇到在 SO 上发布的问题并在此帖子http://htmlagilitypack.codeplex.com/discussions/282469中得到回应,以包含某些用于编译的库。我提到它的原因是有一个非常强大的 HtmlEncode 类,它构建了所有实体的字典。您可能无法直接使用 DeEntitize(),但您可以研究它是如何工作的,以便在需要时构建一些东西以剥离所有内容。

我个人不想手动计算正则表达式,我会使用为我构建的类似的东西,然后循环遍历我认为相关的所有内容。当然,这是手机,因此您最好根据具体情况进行剥离,但如果提要不断变化并且您没有足够的样本数据来构建,这将变得很困难。

于 2012-04-27T14:18:11.473 回答