XML 類型轉換
Flash Player 9 以及更新的版本,Adobe AIR 1.0 以及更新的版本
您可以將 XML 和 XMLList 物件轉換為 String 值。同樣地,您也可以將字串轉換為 XML 和 XMLList 物件。此外,也請記住,所有的 XML 特質值、名稱和文字值都是字串。下列幾節將會討論所有這些 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"); // throws an error
從字串轉換為特質值、名稱和文字值
因為所有 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.95;
如果上述程式碼沒有使用
Number()
函數,則會將 + 運算子解譯為字串連接運算子,而且最後一行的
trace()
方法會輸出:
01.003.95
|
|
|