【发布时间】:2011-04-24 10:50:09
【问题描述】:
我在 MySQL 中有一个表,其中一个字段定义为 TEXT。信息通过使用 textarea 的 webform 馈送到数据库。
我正在使用以下脚本来生成包含表信息的 XML:
#!/usr/bin/perl
use strict;
use DBI;
use XML::Generator::DBI;
use XML::Handler::YAWriter;
my $dbh = DBI->connect ("DBI:access info goes here",
{ RaiseError => 1, PrintError => 0});
my $out = XML::Handler::YAWriter->new (AsFile => "-", Encoding=>"ISO-8859-1");
my $gen = XML::Generator::DBI->new (
Handler => $out,
dbh => $dbh
);
$gen->execute ("SELECT text FROM table");
$dbh->disconnect ();
问题在于,当输入的文本有断线时,它会生成格式错误的 XML:
<text {http://axkit.org/NS/xml-generator-dbi}encoding="HASH(0x9c43ba0)">PHA+YWlqZHNvaWFqZG9pYXNqZG9pYXNqb2RpanNhaW9kanNhb2lkYXNvaWo8L3A+DQo8cD5zPC9w
Pg0KPHA+ZDwvcD4NCjxwPmFzPC9wPg0KPHA+ZHNhPC9wPg0KPHA+ZDwvcD4NCjxwPnNhZHNhZHNh
ZHM8L3A+DQo8cD4mbmJzcDs8L3A+DQo8cD5hc2Rhc2Rzc2FkZHNkc2FzZHNhPC9wPg0KPHA+Jm5i
c3A7PC9wPg0KPHA+YXNkZHNhZHNhYXNkc2Rhc2RhYXNkPC9wPg==
</text>
例如,如果输入的文本是:
<p>One</p>
<p>Two</p>
它输出格式错误的 XML,但是当文本是:
<p>One</p> <p>Two</p>
它正确地打印出 XML。
有什么方法可以从文本区域中“剥离”断线或在创建 XML 时忽略它?
谢谢。
【问题讨论】: