2011年5月17日星期二

Re: [PerlChina] 请教一个XML处理相关的问题

if you just need write XML, you can try XML::Writer

Thanks

On 2011/5/18 12:49, 许高飞 wrote:
> 大家好!
>
> 遇到一个头疼的问题,特来请教大家。
> file1.txt表示一个大学U的院系班级层次结构,
> U下面有SCHOOL01等院,院下面有系,系下面是班级(也有一些班级的上一级就直
> 接是院);
> file2.txt是学生的学号、姓名、班级、成绩。
> 需要从这两个文件读取信息,并输出成XML文件。
>
> file1.csv:
> ID,PARENTID
> U,ROOT
> SCHOOL01,U
> SCHOOL02,U
> SCHOOL03,U
> DEPT01,SCHOOL01
> CLASS01,DEPT01
> CLASS02,DEPT01
> CLASS03,DEPT01
> DEPT02,SCHOOL02,
> CLASS04,DEPT02
> DEPT03,SCHOOL02
> CLASS05,DEPT03
> DEPT04,SCHOOL02
> CLASS06,DEPT04
> CLASS07,SCHOOL03
> ……
>
> file2.csv:
> ID,NAME,CLASS,GPA
> pb001,Mike,CLASS01,3.70
> pb002,Jim,CLASS01,3.92
> pb003,Lisa,CLASS02,3.88
> pb004,Look,CLASS03,4.05
> ……
>
> file1.txt表示一个大学U的院系班级层次结构,
> U下面有SCHOOL01等院,院下面有系,系下面是班级(也有一些班级的上一级就直
> 接是院);
> file2.txt是学生的学号、姓名、班级、成绩。
> 需要从这两个文件读取信息,并输出成类似下面这样的XML文件格式:
>
> <Group ID="U" TYPE="ROOT">
> <SchoolRef ID="SCHOOL01"/>
> <SchoolRef ID="SCHOOL02"/>
> <SchoolRef ID="SCHOOL03"/>
> ……
> </Group>
>
> <Group ID="SCHOOL01" TYPE="SCHOOL">
> <DeptRef ID="DEPT01"/>
> </Group>
>
> <Group ID="DEPT01" TYPE="DEPT">
> <ClassRef ID="CLASS01"/>
> </Group>
>
> <Group ID="SCHOOL03" TYPE="SCHOOL">
> <ClassRef ID="CLASS07"/>
> </Group>
>
> <Group ID="CLASS01" TYPE="CLASS">
> <student ID="pb001" NAME="Mike" GPA="3.70"/>
> <student ID="pb002" NAME="Jim" GPA="3.92"/>
> </Group>
>
> <Group ID="CLASS02" TYPE="CLASS">
> <student ID="pb003" NAME="Lisa" GPA="3.88"/>
> </Group>
>
> <Group ID="CLASS03" TYPE="CLASS">
> <student ID="pb004" NAME="Look" GPA="4.05"/>
> </Group>
> ……
>
> 对XML处理不熟悉,看了一下XML::Simple的用法,看得头大还是没想明白我这个
> 问题要怎么处理?故来请教一下大家,先谢谢了。
>
>
> --
> 您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"
> 论坛。
> 要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com
> 要取消订阅此网上论坛,请发送电子邮件至
> perlchina+unsubscribe@googlegroups.com
> 若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN
> 访问此网上论坛。


--
Fayland Lam // http://www.fayland.org/

--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。

[PerlChina] 请教一个XML处理相关的问题

大家好!

遇到一个头疼的问题,特来请教大家。
file1.txt表示一个大学U的院系班级层次结构,
U下面有SCHOOL01等院,院下面有系,系下面是班级(也有一些班级的上一级就直接是院);
file2.txt是学生的学号、姓名、班级、成绩。
需要从这两个文件读取信息,并输出成XML文件。

file1.csv:
ID,PARENTID
U,ROOT
SCHOOL01,U
SCHOOL02,U
SCHOOL03,U
DEPT01,SCHOOL01
CLASS01,DEPT01
CLASS02,DEPT01
CLASS03,DEPT01
DEPT02,SCHOOL02,
CLASS04,DEPT02
DEPT03,SCHOOL02
CLASS05,DEPT03
DEPT04,SCHOOL02
CLASS06,DEPT04
CLASS07,SCHOOL03
……

file2.csv:
ID,NAME,CLASS,GPA
pb001,Mike,CLASS01,3.70
pb002,Jim,CLASS01,3.92
pb003,Lisa,CLASS02,3.88
pb004,Look,CLASS03,4.05
……

file1.txt表示一个大学U的院系班级层次结构,
U下面有SCHOOL01等院,院下面有系,系下面是班级(也有一些班级的上一级就直接是院);
file2.txt是学生的学号、姓名、班级、成绩。
需要从这两个文件读取信息,并输出成类似下面这样的XML文件格式:

<Group ID="U" TYPE="ROOT">
       <SchoolRef ID="SCHOOL01"/>
       <SchoolRef ID="SCHOOL02"/>
       <SchoolRef ID="SCHOOL03"/>
……
</Group>

<Group ID="SCHOOL01" TYPE="SCHOOL">
       <DeptRef ID="DEPT01"/>
</Group>

<Group ID="DEPT01" TYPE="DEPT">
       <ClassRef ID="CLASS01"/>
</Group>

<Group ID="SCHOOL03" TYPE="SCHOOL">
       <ClassRef ID="CLASS07"/>
</Group>

<Group ID="CLASS01" TYPE="CLASS">
       <student ID="pb001" NAME="Mike" GPA="3.70"/>
       <student ID="pb002" NAME="Jim" GPA="3.92"/>
</Group>

<Group ID="CLASS02" TYPE="CLASS">
       <student ID="pb003" NAME="Lisa" GPA="3.88"/>
</Group>

<Group ID="CLASS03" TYPE="CLASS">
       <student ID="pb004" NAME="Look" GPA="4.05"/>
</Group>
……

对XML处理不熟悉,看了一下XML::Simple的用法,看得头大还是没想明白我这个问题要怎么处理?故来请教一下大家,先谢谢了。


--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。

[PerlChina] what's new in perl 5.14

这个slides不错
http://blogs.perl.org/users/andrew_shitov/2011/05/whats-new-in-perl-514.html



--
Woosley.Xu



--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。

2011年5月16日星期一

Re: [PerlChina] LWP::UserAgnet->get(https://...) not work through proxy

You should try HTTP::ProxyPAC if you want proxy auto configuration:

use strict;
use LWP::UserAgent;
use Data::Dumper;
use HTTP::ProxyPAC;

my $ua=LWP::UserAgent->new();

my $pac = HTTP::ProxyPAC->new($pacFile);
my $res = $pac->find_proxy($url);

$ua->proxy(['https', 'http'] => $res->proxy) if $res->proxy;

print Dumper $response;



Make sure you have IO::Socket::SSL or Net::SSL installed for HTTPS support, IO::Socket::SSL is recommended.


2011/5/17 tiger <tigerpeng2001@gmail.com>
Could anyone help on the following test script (run on strawberry
perl)?

It works (with $ua->proxy... commented out) when it is not behind
proxy, but fails to access https pagethrough proxy (with '_msg' =>
'Bad Request'.). It is okay to access http pages. No problem for
accessing https pages with MSIE and Firfox through proxy.

Thanks,


use strict;
use LWP::UserAgent;
use Data::Dumper;

my $ua=LWP::UserAgent->new();
$ua->proxy(['https', 'http'] => 'http://corppac.myclient.com/
accelerated_pac_base.pac');
my $response = $ua->get('https://login.yahoo.com/config/login_verify2?
&.src=ym'
);
#my $response = $ua->get('http://www.yahoo.com');
print Dumper $response;

--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。


--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。

Re: [PerlChina] LWP::UserAgnet->get(https://...) not work through proxy

you should specify the real proxy instead of pac file. it should be a
host (with user/pass/port if needed).

Thanks

2011/5/17 tiger <tigerpeng2001@gmail.com>:
> Could anyone help on the following test script (run on strawberry
> perl)?
>
> It works (with $ua->proxy... commented out) when it is not behind
> proxy, but fails to access https pagethrough proxy (with '_msg' =>
> 'Bad Request'.). It is okay to access http pages. No problem for
> accessing https pages with MSIE and Firfox through proxy.
>
> Thanks,
>
>
> use strict;
> use LWP::UserAgent;
> use Data::Dumper;
>
> my $ua=LWP::UserAgent->new();
> $ua->proxy(['https', 'http'] => 'http://corppac.myclient.com/
> accelerated_pac_base.pac');
> my $response = $ua->get('https://login.yahoo.com/config/login_verify2?
> &.src=ym');
> #my $response = $ua->get('http://www.yahoo.com');
> print Dumper $response;
>
> --
> 您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
> 要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com
> 要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com
> 若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
>
>

--
Fayland Lam // http://www.fayland.org/

--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。

[PerlChina] LWP::UserAgnet->get(https://...) not work through proxy

Could anyone help on the following test script (run on strawberry
perl)?

It works (with $ua->proxy... commented out) when it is not behind
proxy, but fails to access https pagethrough proxy (with '_msg' =>
'Bad Request'.). It is okay to access http pages. No problem for
accessing https pages with MSIE and Firfox through proxy.

Thanks,


use strict;
use LWP::UserAgent;
use Data::Dumper;

my $ua=LWP::UserAgent->new();
$ua->proxy(['https', 'http'] => 'http://corppac.myclient.com/
accelerated_pac_base.pac');
my $response = $ua->get('https://login.yahoo.com/config/login_verify2?
&.src=ym'
);
#my $response = $ua->get('http://www.yahoo.com');
print Dumper $response;

--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。

2011年5月15日星期日

Re: [PerlChina] Perl 5.14.0 正式发布


woosley@woosley:~/perl5/perlbrew$perl --version

This is perl 5, version 14, subversion 0 (v5.14.0) built for i686-linux

Copyright 1987-2011, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl".  If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.


我最喜欢操作hash/array引用的新特性

$perl -E '$a = [];  push $a, qw/hello Perl-5.14.0/; say "@$a"'
hello Perl-5.14.0


在 2011年5月15日 下午2:57,Robin Lee <robinlee.sysu@gmail.com>写道:
详见: http://search.cpan.org/~jesse/perl-5.14.0/pod/perldelta.pod

基本上是标题党,因为目前还没用上。看完 delta 后列两个个人比较喜欢的新特性:

1. 新的正则替换选项 /r
一直来正则替换(s///)都是直接作用于操作变量。要想原操作变量不变,只想要把替换后的结果保存要另一个变量,要这样写:
my $old = "cat";
my $new = $old;
$new =~ s/cat/dog/;

有了 /r 选项后,就可以这样写
my $old = "cat";
my $new = $old =~ s/cat/dog/r;

也即是正则替换不修改操作变量,并且把替换后的结果作为返回值。

2. package NAMCESPACE [VERSION] BLOCK
package Foo { ... } 相当于 { package Foo; ... }
package Foo 1.2 { ... } 相当于  { package Foo; $VERSION = 1.2; ... }

--
您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。




--
Woosley.Xu



--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。