XML 类型转换

可以将 XML 对象和 XMLList 对象转换为字符串值。同样,也可以将字符串转换为 XML 对象和 XMLList 对象。还要记住,所有 XML 属性值、名称和文本值都是字符串。以下几节将讨论所有这些形式的 XML 类型转换。

子主题

将 XML 和 XMLList 对象转换为字符串
将字符串转换为 XML 对象
从字符串转换属性值、名称和文本值

将 XML 和 XMLList 对象转换为字符串

XML 和 XMLList 类都包含一个 toString() 方法和一个 toXMLString() 方法。toXMLString() 方法返回包含该 XML 对象的所有标签、属性、命名空间声明和内容的字符串。对于包含复杂内容(子元素)的 XML 对象,toString() 方法的作用与 toXMLString() 方法完全相同。对于包含简单内容的 XML 对象(只包含一个文本元素的对象),toString() 方法只返回该元素的文本内容,如下面的示例所示:

var myXML:XML = 
    <order>
        <item id='1' quantity='2'>
            <menuName>burger</menuName>
            <price>3.95</price>
        </item>
    <order>;

trace(myXML.item[0].menuName.toXMLString()); 
    // <menuName>burger</menuName>
trace(myXML.item[0].menuName.toString());
    // burger

如果使用 trace() 方法但不指定 toString()toXMLString(),则默认情况下将使用 toString() 方法转换数据,如以下代码所示:

var myXML:XML = 
    <order>
        <item id='1' quantity='2'>
            <menuName>burger</menuName>
            <price>3.95</price>
        </item>
    <order>;

trace(myXML.item[0].menuName); 
    // burger

使用 trace() 方法调试代码时,通常都要使用 toXMLString() 方法,以便 trace() 方法输出更完整的数据。

将字符串转换为 XML 对象

可以使用 new XML() 构造函数从字符串创建 XML 对象,如下所示:

var x:XML = new XML("<a>test</a>");

如果试图将表示无效 XML 或格式有误的 XML 的字符串转换为 XML,则会引发运行时错误,如下所示:

var x:XML = new XML("<a>test"); // 引发错误

从字符串转换属性值、名称和文本值

所有 XML 属性值、名称和文本值都是 String 数据类型,可能需要将它们转换为其它数据类型。例如,以下代码使用 Number() 函数将文本值转换为数字:

var myXML:XML = 
                        <order>
                            <item>
                                <price>3.95</price>
                            </item>
                            <item>
                                <price>1.00</price>
                            </item>
                        </order>;

var total:XML = <total>0</total>;
myXML.appendChild(total);

for each (var item:XML in myXML.item)
{
    myXML.total.children()[0] = Number(myXML.total.children()[0]) 
                                                + Number(item.price.children()[0]);
}
trace(myXML.total); // 4.35;

如果这些代码不使用 Number() 函数,它们将把 + 运算符解释为字符串连接运算符,并且最后一行中的 trace() 方法将输出以下结果:

01.003.95

Flash CS3

 

评论添加到页面后给我发送电子邮件 | 评论报告

当前页: http://livedocs.adobe.com/flash/9.0_cn/main/00000131.html