任何人都可以请指导我如何使用这个escape_value()。 我想逃避这个字符:
,因为它引用了无效的字符编号错误。什么是在XML中使用escape_value()的正确方法::简单
这是我的代码提前
任何人都可以请指导我如何使用这个escape_value()。 我想逃避这个字符:
,因为它引用了无效的字符编号错误。什么是在XML中使用escape_value()的正确方法::简单
这是我的代码提前
望着code
my $xs = XML::Simple->new(KeepRoot => 1, KeyAttr => 1, ForceArray => 1);
$xs->XMLout($filename, escape_value(`'`')); // but this is not working
my $data = $xs->XMLin($filename);
感谢,看来该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文本。然后value_to_xml
方法调用行1431中的escape_string
方法。
U + 000C在XML中不允许。
Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]
甚至没能逃脱。
使用字符引用引用的字符必须匹配生产
Char
。
这就是......嗯。有趣。那么,base64? :) – hobbs
@hobbs,这是一个选项。您也可以使用更适合二进制数据的格式。 – ikegami