字符实体引用 中的 Perl 拆分字符串



快速Perl问题,希望有一个简单的答案。我试图在包含非分隔空间( )的字符串上执行分割。这是在使用HTML::TreeBuilder::XPath读取html页面并检索$titleString = $tree->findvalue('/html/head/title')

所需的字符串之后。
use HTML::TreeBuilder::XPath;
$tree = HTML::TreeBuilder::XPath->new;
$tree->parse_file( "filename" );
$titleString = $tree->findvalue('/html/head/title');
print "$titleStringn";

粘贴在下面的是原始字符串,下面是打印的字符串:

Mr Dan Perkins (Active)
Mr?Dan Perkins?(Active)

我试过把$titleString@parts = split('?',$titleString);分开,也和原来的nbsp分开,虽然都没有工作。我的直觉是有一段简单的编码代码要添加到某个地方?

HTML代码:

<html>
<head>
<title>Dan&nbsp;Perkins&nbsp;(Active)</title>
</head>
</html>

您不需要知道文档中的文本是如何编码的。因此,当文档包含&nbsp;时,findvalue返回一个实际的非断行空间(U+00A0)。因此,您将使用

split(/xA0/, $title_string)
   -or-
split(/x{00A0}/, $title_string)
   -or-
split(/N{U+00A0}/, $title_string)
   -or-
split(/N{NBSP}/, $title_string)
   -or-
split(/N{NO-BREAK SPACE}/, $title_string)

最新更新