当前位置:主页 > C++新闻 >

用VisualC++制作新闻阅读器

文章出处:未知 人气:发表时间:2020-11-16

  用VisualC++制作新闻阅读器_IT/计算机_专业资料。12 6 福 建 电 脑 2 1 年第 8期 01 用 V sa C + i l + 制作新 闻阅读器 u 蔡 磊 ( 建顶 点软件 股份 有 限公 司 福建 福 州 3 0

  12 6 福 建 电 脑 2 1 年第 8期 01 用 V sa C + i l + 制作新 闻阅读器 u 蔡 磊 ( 建顶 点软件 股份 有 限公 司 福建 福 州 3 0 0 福 5 0 3) 【 摘 要】 . 是一种遵循 W3 DF( su e e r t nF锄 e ok 规范的用于共享新 闻标题 :R S S CR Re r s p or w r) o cD c i i 和 其他 W e 内容 的 XML格 式 , 文 阐述 了 RS 定 义 , 尝试 实现 了一 个 RS 解析 器类 , 析 了解 b 本 . S的 并 . S的 分 析 的基 本 算法 , 并在 此基础 上 实现 了一个 简单 的新 闻 阅读 器。 【 关键词】 S :R S XMLMF 聚合 摘要 c + 阅读器 C + 1 R S的定 义 、S 我们 先打开 百度 新 闻一 个 R S链接 .如果 你再 多 S R S R a ySm ly dc t n 真 正 简 单 的 连 锁 ) 打开 几个 别 的 网站 的 R S链接 . 发 现 他们 都有 大致 S ( el i peS n ia o , l i S 会 是一 种 We 内容 连 锁格 式 。R S成为 通过 We 锁 相 同的结构 。而我们 在 揭秘 R S 上 ) b S b连 S ( 中为大家 讲 解 的 新 闻 内容 的标 准格 式 。近 几年 。各 类 网站纷 纷 提供 的 其 实 就是编 成实现 这样 的一个 X ML文件 。 R S服务 作 为 We2 S b. 0时代 的一 项支 撑 技术 颇受 关 注 。 为 了能 够方便 地 对 这样 的 X ML文档 进行 处 理 . 在 各 种类 别 的信 息 通过 R S发 送 。被 广泛 应 用 于博 客 、 本 文 里 , S 我们 使用 V + 作 为开发 的语 言 。 C+ 播 客 、 闻信 息 、 性化 搜 索 、 新 个 电子商 务 等各个 领 域 , 强 分析整 个 R S链接 后 .我们 知道 R S大致 的 结构 S s 调个 性 化 获 取 信 息 的用 户 群 日益 壮 大 .S R S一 词 逐 渐 如图 1 。 从 一种技 术 性 的概念 延伸 到 网络应 用领 域 .并 作 为一 22 抽取 的原理 .、 种 重要传 媒形 态 构筑 着 网络传播 的新 景观 。 知道 了结构 , 们还 要 知 道结构 中各部 分 的含 义 。 我 从 定义 上讲 . s 一种 遵循 W3 D ( eore 在 图 l中 R S节 点表 示 当前 是一 个 R S文件 . 由一 R s是 CR F R suc S S 它 D sr t nFa e ok ec pi rm w r )规 范 的用于共 享新 闻标 题 和其 个 C A N L节点 及其 子 节点 组成 .其 中一 些子 节点 i o H N E 他 We b内 容 的 X ML格 式 , 一 种 轻 型 的 、 是 多用 途 的 、 提供关 于频 道本身 的信 息 .比如 tl 表 示频 道 的名称 ie t 可 扩展 的元 数据 描述 和交 换格 式 .用 于发 布和 汇集 互 (百 度互联 网新 闻” 。 “ ) 联 网上 的 内容 。内容 提供者 可利 用 R S方便 地创 建和 S C N E 节 点 又 包 含 多 个 IE 子 节 点 . HA N L TM 而 传 播 包括 新 闻链 接 、 题 和 摘 要 在 内 的提 要 (ed 信 I M 节点 就是 程序需 要处 理 的部 分 . 标 Fe ) E T 因为 它对应 着 每 息 。其他 网站 可利 用 R s把 内容广 泛地 投递 给订 阅用 条 实 际 的新 闻项 信 息 . s 每个 IE 节 点 又 通 过 其 子 节 TM 户。 S R S技术 剥 离 了网站 中的图像 和浮动 广告 。 只取关 点提 供关 于这条新 闻的详细 信息 .比如 甜 e表示 新 闻 键 数据 ( 如新 闻摘 要 )并 以纯文本格 式 发布 出去 。 例 , 而 的标 题 (微 软 I 称王 ” 。n 应新 闻实 际 的链 接 。 “ M )l k对 i 后 .则 可 以很方 便地 将这 种信 息 连 同指 向原站 点 的链 R S具 体 规 范 可 查 看 ht:bosa . radeu S t / l .wh vr. / p/ g 1 a d 接 编入其 他 网站 。 各种 使用 协议 下 , 在 内容提 供商 允许 te /s e hrs 其他网站编录他们“ 聚合” 的标题 , 或者摘要的“ 提要” 。 2 R S 的数 据解 析 、S 要 想 轻 松 的抽 取 R S信息 . 自然先 要 了解 它 的结 了。现在 来看看 具体 的实 现方 法吧 。 S 构, 所谓 “ 己知彼 , 战不殆 ” 。 知 百 嘛 3R S新 闻阅读器 的开 发 .S 知 道 了这些后 。 编程就 不 困难 啦。我们 只需提 取 要 并显 示 出 C N E HA N L和 IEM 下 的各 条 信 息 就 可 以 , I 21R S的结 构 .、 S 对 R S有 一定 了解后 . S 我们 开始 编 写程序 。 先还 是 需 要一 个最 简单 的界 面 。新建 一个 MF il CDao 程 , g工 在 Dio a g上放 置一 个 Lbl l ae。一 个 文本框 tU L用来 x R t 输入 R S链 接 ( S 就是 各 网站 R S链 接 中包 含 的地 址 ) S , 一 个 按 钮 b R a 来 执 行 读 取 新 闻, 个 T eV e n e d用 一 re i w 树形 控件 t e S r R S显示读 出的新 闻项 。 e 31定 义装 载结构 .、 根 据 上 面 分 析 的 R S结 构 ,我 们 首 先 来 建 立 S C hne 类 和 Ct 类 . 用 它 来 装 载 R S链 接 中 C anl Im e S 图 1 C N E HA N L和 I M 的各条信 息 。代码 如下 : E T tp d fCAr < tm, tm&> I mAra ; y e e my Cl Cle e t e ry 万方数据 21 0 1年第 8期 t eeA ry C hn e C hn e&>C an lra; y df ra< C an L C a nl p C hn eA ry 福 建 电 脑 13 6 解 析器 接 口代码 如下 : dasCCRsPasr: u l s s re p i CMak p b c ru c s C hre : O j t l s Ca l C b c a m e I DECL ARE — { DN Y AMI( h n e CCC a n1 ) p b c ul: i fin ls re d casCCR s as r s P re , pu lc bi: bo o nod s(os cau1 ol w la R s nt h r r; D e ) vi eC a nl hn eA ry arh n es odG t hn e( anl r & r a nl ; C a C ) 。 p i ae rv t : C hn d0【 C an 】 i n C a nl os C h n e&fe ;  ̄ieC hn e( nt C a nl l m) e t il eC h n e L C S RsTt ,P T T pz ik n n C a nl P T T pz ieL C S RsLn , i ( l L C S B pz ecit nL C S RsC p h ; P T T sD sr i ,P T T pz o  ̄g 0 po Ie t mAra r ym a rt ms rIe ; _ Ch n eAra ar a n l a n l rym r Ch n es ; _ sd:tigm_ L sErT t t: rn s a t r x; s sd:tigm_ Xml c t: rn s s Do ; l ; / tiu e: /At b ts r poe td: rtce 使 用 C R s asr 将 t U L中输 入 的 R S链 接 C sP re 类 x R t S C tn t ie ……. Sr gm s Td … i r 成员定 义忽略 / /Op r t n eai s o pu lc b i: 加 载后 。首 先 找到 C anl 点 。 hn e节 然后 我 们 就 可 以遍 历 它 的子 节 点 , 根据 子 节 点 的 N m a e属 性 , 取 我 读 们需 要 的信 息 。 现代 码如 下 : 实 b o C R s a e :o n a Rs o s ca r ol C s r rD w l d s( nt h r u1 P s: . o c ) ( CSfn sr fe sr n , sr srpin sr pyih , srub t, t g t l , tLik tDec it , tCo rg t tP Dae i Ti o sr to,sr mme t,sr i; tAuh r tCo ns t Gud r n _ i eh m on 0 os ( t nm a I m . t z 】 n G te C u t cn r u _ r t s e i t t er re G S  ̄; vi d e Ctm&de ) odAd h m(I e tm ; vi G fe 1 m r y r t s o e t t Ar &a I m ) d l m(e a re ; il eC h n e oeao-cnt C an l e ; n n C a nl p rtr(os C hn e&dt i & m) l I lme tt n Impe nai o prtce oe td: s a Do = ; Xrl c CItmeS sins sin ne te so e so ; CltmeFi fl ne t l i e= NULI e  ̄ v io y osC a nl rh n e) odC p( nt hn e C a n1 c C & ; 】 ; ,试着连接到指定 U L , R C h n e 类将 存 储 C A N L节点 包 含 的所 有 子 C anl H N E i =(lt t l ) es n e U L u ) , f e C n me i * ss o .pn R ( 1 , 里忽 略连 接 异 常 l e Fe i O r; 这 处 理 节点信息 , 其中 I m 成员字段是一个 H st l 集合 , t s e a ae hb 程 序 会 将 Ctm 类 作 为 对 象 加 入 集 合 . 用 来 存 储 I e C h n e 下 的所 有 I m节 点 。 里我 只读 取 了有 限的 C anl t e 这 几 个 节 点 .读 者 可 以根 据 实 际需 要 扩 展 整 个 结 构 定 义。 ,读取 , i (l) f6e ( 的X ML文件 C tn o eo e/ Sr g sm cd;/ i g 本 中 的 、 回车 符 I l 采用 L T T P S R类 型. 将不会删 除文 Ctm类 定 义如 下 : I e va8 tm: o j i8 e c b ̄t CI 【 ,读 写 网页 文 件 . 到 为空 , 直 w i ( e > e S ig( m od) h e T - R a tn 8 eo e !=N L ) Ⅱ 采用 l a l d r o U L 果 L IT F S R类 型 , 读取 最大个数 n x置 0 使它遇空字符时结束 Ma , I m s ml o =(P T T ) meee X D e+ L C S R s c ; o d Im_ Xml c + ’I’ I s Do = ’l: 、 ’ D C A E D N M CC t ) E L R Y A I (I m e p b i: u lc Ct I m0( e } il eCtm(os C tm l m; ni I ent l &rt ) n e e e il e l m (P T T p zie P T T pz ikL C S R n n Ct i e L C S R sTt , C S R sLn ,P T T lL p z u DaeL  ̄TS sP b t,I TR sAuho,L TS p z t r PC TR sDee pin】 朗 r z pz sf t - i o R ps- l i - Co 0 fe > l e ; l s d lt de eeef ; C mm ns P T T sG i) o e tL C S Rp z ud; , lAtrb ts l t ue : i 】 es le p oe td: rtce { m _ C tn s Tf … ? ”:成 员 定 义 忽 略 Sr gm_t ie … ., i rl / / /Op r t n e ai s o satr x =J到指定服务器 的连 接建立 失败 … ) Ls r t ET “; l tllfle ' u ̄ as ; e p bi: ul c i ie l m p r o ent I m n n t &oea  ̄ o s C t &d e ) l Ce t e t ; m / mp e na o /I lme tt n i 】 , , 字符集转换 CChn sCo e: ie e d : UTF S o B 3 2 ( s l o,( a* X Do. T G 2 1 mXm D  ̄ c r) s ml c h m _ poe t : rtce d C , m _ smD cet O X lo.n ) 1 ; vi C p ( nt h m i ) o o y o s C e &d e ; d c m J ; j l 铸辑 X ML i( Sto( _Xa o. sO) r u a e f ! e em srD e_t )e r l ; D l e r t nfs / / 获取频道 Fn Ee 0 / r lmetsro id lm ;/8 ee n t 8 i o 32 从 R S链 接 中获取 新 闻信 息 .、 S 现在 我 们就 可 以开 始编 写 读 取 函数 。将抽 取 出 的 R S信 息放 入上 面设 计好 的结构 中。 S 在 XML的解 析 上 , 里 使用 了开 源 的 类 C ru 这 Mak p 来访问 X L 使我们能够轻松地读 出 R S M, S 的内容。主 万方数据 I o l 0 /is e s n Ee ; ni 8 t m / d r w i ( id l ( hn e ) h e F E e ” an l ) l n m c ” { R sth d o ; e C i Ps e l 0 14 6 ,i取 主 题 , 卖 福 建 电 脑 J 21 0 1年第 8期 i( i C i E m ” t ” ) t i f Fn h d h ( l ) s T h=G th d a O d l i te rt e i Dt ; C l a , , 后续读取相关内容代码 同上 . 这里略掉 C hn ete h n e s Tt ,r iks D sr f nsC p - C an l h C an l(riesLn ,r ecii ,to y t lt t pO t 如果 发 现是 i m子 节点 , 调用 gt sI m 函数 , t e 就 eR st e 同样 通 过 遍 历 子 节 点 的方 法 .将 其 子 节 点 内容 填 入 I m 结构 中 . t e 然后 再添 加到 C a n l h n e 结构 的 I ms t 集合 e rI) iI gt ; itix 0 nd = ; i Ie m n tmCo n= ; u t 0 中。 因为本 程序 并不 关心 添加到集 合 的键 值 , 只需 要它 是不重 复 的值 。 以我 传人 了 C ut 所 on 属性 。 33将读 出的信 息显示 在程 序 中 .. 将 R S内容读 出后 . 需要把 信息 展示 给 用户 了。 S 就 我 们 这 里 用 的 是 基 本 的 TeVe 方 法 。通 过 遍 历 re i w 中。 , 得 本 频 道 下 的 新 闻列 表 , 获 R sth d o0 eeC i P s; l w i ( i C i Ee (t ” ) I m on+ ; h e F d h d l ” e ) n e C u t+ l n l m im t ntmC u t l o n) e ; , , 获得本频道下的新闻列表 C aBl 构 的 I m 集 合 . hne 结 t s e 将其 标 题 添加 到 Te V e re i w R sth d o0 e C i P s; e l w i Fn C i Ee ” e ) hl jd hl lm(tm” ) e( d i { s T t =l' t ik=n' t u D t =¨'s Auh r l ' t ie I sr n r l I L I lsPb a I r e I u t o - l I f f 程 序运行 效 果如 图 2 。 s D sr t n ..t o met=.s G i=.; t eci i =I sC m ns .,r ud . r po f r - .t . . . Iol O n Ee ; t m R sC iPs; e th d o e l 0 Fn C i E e ”t ” ; id hl lm( tl ) d ie sTt =G th d a 0 t ie e i D t ; r l Cl a , , 后续获取相关 内容 , 代码 同上 , 这里略掉 ●● ● ●● ● ●● ● … … … .. O tfh O u Em ; O C e  ̄dt s Tt , t ik s P b ae s A to, hm e t ie s Ln , t u D t,t uh r m( r l r r r s D sr t n s C m nss G i) t eci i ,t o met,r ud; r po r t 4 小结 . i ,e e ) d t lm; xh t ) +: 汁 怎 么样 。一 个 简单 的 R S新 闻 阅读 器 就按 前 面所 S 说轻 松完 成 了 。 易吧 。虽然 它还有很 多 不 足 , 如果 容 但 方 法 . 就足 够 了 ! 那 } m _ 大 家 通 过 这 个 例 子 学会 了抽 取 R S链 接 信 息 的 基 本 S a Ch nes d flC a n1 n an lA dⅡe hn e) . ; l r ur t ue; et n r ( 接第 14页) 上 3 o a i d,b ) d . l sal ; F l t e ( Od c ls0 b. oe ; C rtrs a l [be; eund. be t l] T sa l , , 填充数据集 , , 返回数 据表 参 考文 献 : 社 .0 6 20. 【 张领 . PNE 1 】 AS . T项 目开发全 程 实录[ . M】 北京 : 清华 大 学 出版 6 总 结 、 [ 尚俊 杰. S .E 2 】 A PN T程序设计【 . M】 北京: 北京交通大 学出版社 。 互动媒体学习交流系统实现了留言板管理、教程 2 6. 00 发布及管理、 教程检索 、 教程信息查看及后台管理等功 [ BUEjnec Poe i aA PN T 【 . td US Wiy 3  ̄ vet. rf s nl S . I so E M】2he. A: l e 能. 系统具有一定 的实用性 , 可作为独立网站运行 , Pubihig Ic,0 6. 也 l n ,n 20 s 可 作 为大 型学 习 网站 中一个 模 块 。 万方数据

同类文章排行

最新资讯文章

返回顶部