Flex3:转义XML中的字符

时间:2011-05-06 17:38:45

标签: xml flex3 escaping

我正在使用Flex 3,SDk 3.6,Flash Player 10。

如果我不在XML数据中转义字符,那么Flex会给我语法错误。例如:

<mx:XML xmlns="">
       <group>
    <place stackName="Place1">
        <name>Place ABC</name>
        <encoding>ieqlFjiguM?_YHW\k@ZYd@UNAcA{AsGaLkJcRkAuBpm@BjBlJdBlJZ`@fCfBd@r@dFnMbCxF|B`Fn@fAmCViDHu@RoCnAsCfA}BhAe@`@OZu@fDSb@wAj@e@VUq@uB}@aAy@yCf@_AFs@i@Fe@y@}@Eo@c@@[[CcAQAk@ZQf@o@BIA?W</encoding>
    </place>
        </group>
</mx:XML>

在这种情况下,标签包围的数据会导致问题。如果我为所有特殊字符添加反斜杠,那么我不会收到任何错误,但我无法使用它来制作谷歌地图编码的多边形。

编辑: 这些是我得到的错误:

1084:语法错误:在rightparen之前期待冒号 1084:语法错误:在&符号之前期待rightparen 1084:语法错误:期待rightparen 1093:语法错误。
1093:语法错误。 语法错误:在rightbrace之前期待标识符。 [生成代码(使用-keep保存) 语法错误:在rightbrace之前期待rightparen。 [生成代码(使用-keep保存)

2 个答案:

答案 0 :(得分:2)

我建议您使用CDATA标签包含内容。

<mx:XML xmlns="">
    <group>
        <place stackName="Place1">
            <name>Place ABC</name>
            <encoding>
                <![CDATA[
                    ieqlFjiguM?_YHW\k@ZYd@UNAcA{AsGaLkJcRkAuBpm@BjBlJdBlJZ`@fCfBd@r@dFnMbCxF|B`Fn@fAmCViDHu@RoCnAsCfA}BhAe@`@OZu@fDSb@wAj@e@VUq@uB}@aAy@yCf@_AFs@i@Fe@y@}@Eo@c@@[[CcAQAk@ZQf@o@BIA?W
                ]]>
            </encoding>
        </place>
    </group>
</mx:XML>

答案 1 :(得分:0)

好的,我遵循了这个tutorial并从外部文件加载了XML并且它可以工作。我一定搞砸了XML的加载方式。

感谢John和xavierzhao试图帮助我。