免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3467 | 回复: 4

如何在XML::Generator模块中使用大于和小于号? [复制链接]

论坛徽章:
0
发表于 2013-12-13 21:15 |显示全部楼层
请教各位大神,$info1,$info2,$info3是我循环出来的信息,我直接加了标签,可到模块中却翻译了另一种表达,小于号<变成了&lt;大于号>变成了&gt;,如何能杜绝呢?

  1. #!/usr/bin/perl -w
  2. use strict;
  3. use warnings;
  4. use XML::Generator;

  5.    my ($xml,$put,$file,@info,$info1,$info2,$info3);
  6.    $info1 = "\n<name>wang hong</name>\n<sex>male</sex>\n<age>21</age>\n<address>anhui</address>\n";
  7.    $info2 = "\n<name>hou shiyou</name>\n<sex>male</sex>\n<age>22</age>\n<address>tianjin</address>\n";
  8.    $info3 = "\n<name>yu huixia</name>\n<sex>female</sex>\n<age>18</age>\n<address>sichuan</address>\n";
  9.    push @info,$info1,$info2,$info3;

  10. $xml = new XML::Generator(
  11.    'conformance' => 'strict',
  12.     'escape'     => 'always',
  13.     'pretty'     => 2,
  14.     'encoding'   => 'utf-8'
  15. );
  16. $put = $xml->function(
  17.     { 'funcname' => 'student_info', 'no' => 'no' },
  18.     $xml->task_num('20131213008'),
  19.     $xml->school(
  20.         $xml->grade('Grade One'),
  21.         $xml->student(
  22.              map $xml->member($_), @info
  23.         )
  24.     )
  25. );
  26. $file = $xml->xmldecl."$put";
  27. print "$file\n";
复制代码
下图是执行结果!

执行结果

执行结果

论坛徽章:
0
发表于 2013-12-13 21:52 |显示全部楼层
以【<![CDATA[】开始,以【]]>】结束?

论坛徽章:
0
发表于 2013-12-14 00:22 |显示全部楼层
祝大家周末愉快啊!

论坛徽章:
7
戌狗
日期:2013-12-15 20:43:38技术图书徽章
日期:2014-03-05 01:33:12技术图书徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16赛季CBA联赛之青岛
日期:2016-03-17 20:36:13
发表于 2013-12-14 01:18 |显示全部楼层
错误的用法~ )
  1. use XML::Generator;

  2. my ( $xml, $put, $file, @info, $info1, $info2, $info3 );
  3. $info1 =
  4. "\n<name>wang hong</name>\n<sex>male</sex>\n<age>21</age>\n<address>anhui</address>\n";
  5. $info2 =
  6. "\n<name>hou shiyou</name>\n<sex>male</sex>\n<age>22</age>\n<address>tianjin</address>\n";
  7. $info3 =
  8. "\n<name>yu huixia</name>\n<sex>female</sex>\n<age>18</age>\n<address>sichuan</address>\n";

  9. @info = map { { /<(\w+)>(.*?)</g } } $info1, $info2, $info3;

  10. $xml = new XML::Generator(
  11.     'conformance' => 'strict',
  12.     'escape'      => 'always',
  13.     'pretty'      => 2,
  14.     'encoding'    => 'utf-8'
  15. );
  16. $put = $xml->function(
  17.     { 'funcname' => 'student_info', 'no' => 'no' },
  18.     $xml->task_num('20131213008'),
  19.     $xml->school(
  20.         $xml->grade('Grade One'),
  21.         $xml->student(
  22.             map {
  23.                 my %member = %$_;
  24.                 $xml->member(
  25.                   map { $xml->$_( $member{$_} ) }
  26.                       qw/name sex age address/ )
  27.             } @info
  28.         )
  29.     )
  30. );

  31. $file = $xml->xmldecl . "$put";
  32. print "$file\n";
复制代码
  1. <?xml version="1.0" encoding="utf-8" standalone="yes"?>
  2. <function funcname="student_info" no="no">
  3.   <task_num>20131213008</task_num>
  4.   <school>
  5.     <grade>Grade One</grade>
  6.     <student>
  7.       <member>
  8.         <name>wang hong</name>
  9.         <sex>male</sex>
  10.         <age>21</age>
  11.         <address>anhui</address>
  12.       </member>
  13.       <member>
  14.         <name>hou shiyou</name>
  15.         <sex>male</sex>
  16.         <age>22</age>
  17.         <address>tianjin</address>
  18.       </member>
  19.       <member>
  20.         <name>yu huixia</name>
  21.         <sex>female</sex>
  22.         <age>18</age>
  23.         <address>sichuan</address>
  24.       </member>
  25.     </student>
  26.   </school>
  27. </function>
复制代码

论坛徽章:
0
发表于 2013-12-14 11:38 |显示全部楼层
回复 4# rubyish
感谢,CU真是一个温暖的大家庭!
   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP