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

私のコメントにもかかわらず、私は 2 番目のオプションが、ここにある wp7.5 バイナリを含む Html Agility Pack である可能性があることに気付きました。SO でここに投稿され、この投稿http://htmlagilitypack.codeplex.com/discussions/282469でエコーされた問題に遭遇して、コンパイル用の特定のライブラリを含めることができます。私が言及した理由は、すべてのエンティティのディクショナリを構築する非常に強力な HtmlEncode クラスがあるからです。DeEntitize() を直接使用することはできないかもしれませんが、必要に応じて、何かを構築してすべてを取り除く方法を学ぶことができます。

私は個人的に正規表現を手で計算したくありません。私のために構築されたこのようなものを使用し、関連性があると思われるすべてのものをループします。もちろん、これは電話なので、ケースバイケースで削除したほうがよいかもしれませんが、フィードが絶えず変化し、構築するのに十分なサンプル データがない場合は困難になります。

于 2012-04-27T14:18:11.473 に答える