查看代码,该escape_value
方法似乎接受一个字符串并返回返回该字符串并进行以下替换:
>
至>
<
至<
&
至&
"
至"
它甚至不操纵对象的结构。如果你直接调用它,你只需这样做:
my $string = '"Remove quotes" & <entities> quotes';
my $encoded_string = $self->escape_value( "$string" );
say $encoded_string; #"Remove quotes" & and <entities> quotes
哎呀,为什么还要为面向对象而烦恼呢?
my $string = '"Remove quotes" & <entities> quotes';
my $encoded_string = XML::Simple::escape_value( "$string" );
say $encoded_string; #"Remove quotes" & and <entities> quote
看起来,XMLOut
只要选项NoEscape
未设置或设置为 ,该子例程就会自行调用0
。
在代码的第 636 行,该XMLOut
方法正在调用该value_to_xml
方法。这需要传递给 XMLOut 的数据结构并创建一个 XML 文本。然后该方法在第 1431 行value_to_xml
调用该escape_string
方法。