XML nesnelerini ve XMLList nesnelerini String değerlerine dönüştürebilirsiniz. Aynı şekilde, dizeleri de XML nesnelerine ve XMLList nesnelerine dönüştürebilirsiniz. Ayrıca, tüm XML nitelik değerlerinin, adlarının ve metin değerlerinin dize olduğunu unutmayın. İlerleyen bölümlerde, bu XML tür dönüştürmesi biçimlerinin tümü ele alınmıştır.
XML ve XMLList nesnelerini dizelere dönüştürme
XML ve XMLList sınıfları, bir
toString()
yöntemini ve bir
toXMLString()
yöntemini içerir.
toXMLString()
yöntemi, XML nesnesinin tüm etiketlerini, niteliklerini, ad alanı bildirimlerini ve içeriklerini barındıran bir dize döndürür. Karmaşık içerik (alt öğeler) barındıran XML nesneleri için,
toString()
yöntemi
toXMLString()
yöntemiyle tamamen aynı şeyi yapar. Basit içerik barındıran XML nesneleri (yalnızca bit metin öğesi barındıran) için,
toString()
yöntemi aşağıdaki örnekte gösterildiği gibi, yalnızca öğenin metin içeriğini döndürür:
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
toString()
veya
toXMLString()
öğesini belirtmeden
trace()
yöntemini kullanırsanız, bu kodda gösterildiği gibi, varsayılan olarak
toString()
yöntemi kullanılarak veriler dönüştürülür:
var myXML:XML =
<order>
<item id='1' quantity='2'>
<menuName>burger</menuName>
<price>3.95</price>
</item>
<order>;
trace(myXML.item[0].menuName);
// burger
Kodun hatalarını ayıklamak için
trace()
yöntemini kullanırken genellikle
trace()
yönteminin daha tam veri vermesi için
toXMLString()
yöntemini kullanmayı istersiniz.
Dizeleri XML nesnelerine dönüştürme
Aşağıdaki gibi, bir dizeden XML nesnesi oluşturmak için,
new XML()
yapıcısını kullanabilirsiniz:
var x:XML = new XML("<a>test</a>");
Aşağıdaki gibi, bir dizeyi, geçersiz XML'i veya düzgün biçimlendirilmemiş XML'i temsil eden bir dizeden XML'e dönüştürmeyi denerseniz, bir çalışma zamanı hatası atılır:
var x:XML = new XML("<a>test"); // throws an error
Dizelerden nitelik değerlerini, adları ve metin değerlerini dönüştürme
Tüm XML nitelik değerleri, adları ve metin değerleri, String veri türündedir ve bunları başka veri türlerine dönüştürmeniz gerekebilir. Örneğin, aşağıdaki kod, metin değerlerini sayılara dönüştürmek için
Number()
işlevini kullanır:
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;
Bu kod
Number()
işlevini kullanmasaydı, kod, + operatörünü dize bitiştirme operatörü olarak yorumlardı ve son satırdaki
trace()
yöntemi çıktı olarak şunu verirdi:
01.003.95
|
|
|