免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: rexuekonglong
打印 上一主题 下一主题

求助:perl 处理xml内容 [复制链接]

论坛徽章:
0
51 [报告]
发表于 2014-02-26 14:27 |只看该作者
回复 50# pitonas
试过了,在上午修改的基础上的代码也试过了,如果都把确切搜索内容替换写入$search_word
  1. my $xml =`/var/www/supose/supose-0.6.2/bin/supose se -I /var/www/supose/repositroy  -Q ‘$search_word -x’`;
复制代码
然后手动执行perl test.pl  或者 perl login.cgi(需要去掉脚本第一行的-T), 显示结果都是正确的:


but! 用页面调就╮(╯▽╰)╭


   

论坛徽章:
5
丑牛
日期:2014-01-21 08:26:26卯兔
日期:2014-03-11 06:37:43天秤座
日期:2014-03-25 08:52:52寅虎
日期:2014-04-19 11:39:48午马
日期:2014-08-06 03:56:58
52 [报告]
发表于 2014-02-26 14:34 |只看该作者
what's the result?
  1. #!/usr/bin/perl -wT

  2. use strict;

  3. # Include cgi
  4. use CGI qw/:standard :html3/;
  5. use CGI::Carp 'fatalsToBrowser';
  6. use CGI::Session;
  7. use XML::Simple;

  8. #----------------
  9. #use Encode;

  10. #my $BASEDIR = "/var/www/tangbuild";
  11. my $cgi = new CGI;

  12. my %first;
  13. my $y           = new XML::Simple;
  14. my $search_word = $cgi->param('search_word');

  15. # check $search_word ----------------

  16. print "|$search_word|"; # what's the result?

  17. # -----------------------------------

  18. my $xml =
  19. `/var/www/supose/supose-0.6.2/bin/supose se -I /var/www/supose/repositroy  -Q $search_word -x`;


  20. print "XML\n$xml\n\n";


  21. my $data  = $y->XMLin($xml);
  22. my @print = qw/author path filename message contents/;
  23. my @data =
  24.   grep { !$first{ $_->{path} . $_->{filename} }++ } @{ $data->{entry} };

  25. for my $h (@data) {
  26.     print "<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< \n";
  27.     printf "%-20s%s\n", $_, $h->{$_} for @print;
  28.     print "<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< \n";
  29.     print "\n\n";
  30. }
  31. 1;
复制代码

论坛徽章:
0
53 [报告]
发表于 2014-02-26 14:38 |只看该作者
回复 52# pitonas



和我搜索框里的内容 : log4cplus.rootlogger  一致 。

"|$search_word|";    显示 |log4cplus.rootlogger|

   

论坛徽章:
5
丑牛
日期:2014-01-21 08:26:26卯兔
日期:2014-03-11 06:37:43天秤座
日期:2014-03-25 08:52:52寅虎
日期:2014-04-19 11:39:48午马
日期:2014-08-06 03:56:58
54 [报告]
发表于 2014-02-26 14:56 |只看该作者
{:2_176:} 很遗憾
CGI的一部分,我什么都不知道。 问问 py 版主看看

论坛徽章:
1
IT运维版块每日发帖之星
日期:2015-12-16 06:20:00
55 [报告]
发表于 2014-02-27 00:17 |只看该作者
如果只是去重复节点的话,这种有固定格式的多行文本,如果file和path是固定的位置,比如都是在entry的下数第N行,用awk做可能更适合。回复 37# rexuekonglong


   

论坛徽章:
0
56 [报告]
发表于 2014-02-27 08:43 |只看该作者
回复 55# nathanielwen
xml 优化确实有很多方法,最终结果都是要那么有标志意义的几个元素内容。

目前主要问题集中在程序最终的显示中中文?????的问题。


   

论坛徽章:
0
57 [报告]
发表于 2014-02-27 09:14 |只看该作者
根据python版朋友提示
代码中index.html (在/var/www/   下)中增加了utf-8 标识,login.html.tmpl 也有utf-8标识,
显示结果中文依旧存在问题
index.html原内容:
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <HTML>
  3. <HEAD>
  4. <META HTTP-EQUIV="REFRESH" CONTENT="0; URL=/tangbuild/cgi-bin/index.cgi">
  5. </HEAD>
  6. </HTML>
复制代码
修改后内容:
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <HTML>
  3. <HEAD>
  4. <META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=UTF-8; URL=/tangbuild/cgi-bin/index.cgi">
  5. </HEAD>
  6. </HTML>
复制代码
是按照template/login.html.tmpl 对应格式修改的。
#############################
|--/var/www/index.html
|             |--  tangbuild/facvicon.ico
|                            |--    readme
|                            |--    cgi-bin/index.cgi
|                                        |--   login.cgi               
|                             |--    template/login.heml.tmpl
以上是我的代码文件树,
1、/var/www/index.html 指定跳转至cgi-bin/index.cgi ;
2、index.cgi定义显示页面为 template/login.html.tmpl;
3、index.cgi中定义执行搜索功能页面为 cgi-bin/login.cgi;
4、login.cgi 执行相应的搜索命令并处理结果、最终显示;

论坛徽章:
5
丑牛
日期:2014-01-21 08:26:26卯兔
日期:2014-03-11 06:37:43天秤座
日期:2014-03-25 08:52:52寅虎
日期:2014-04-19 11:39:48午马
日期:2014-08-06 03:56:58
58 [报告]
发表于 2014-02-27 13:59 |只看该作者
(@0@) ~晕
py 版主 != Python版主

论坛徽章:
0
59 [报告]
发表于 2014-02-27 14:48 |只看该作者
回复 58# pitonas
找过了, 那边有人提示我修改index.html 编码字符集,我也尝试过了,结果依旧。


   

论坛徽章:
5
丑牛
日期:2014-01-21 08:26:26卯兔
日期:2014-03-11 06:37:43天秤座
日期:2014-03-25 08:52:52寅虎
日期:2014-04-19 11:39:48午马
日期:2014-08-06 03:56:58
60 [报告]
发表于 2014-02-27 15:00 |只看该作者
{:2_172:}
感觉这才是  py

http://bbs.chinaunix.net/thread-4102232-1-1.html

回复 59# rexuekonglong


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP