在AS3中读取XML

时间:2013-07-17 08:19:04

标签: xml actionscript-3 xml-parsing

我有一个大型xml文件中的以下xml。

<Text>
   <cp IX='0'/>
   <pp IX='0'/>
   <tp IX='0'/>Wo<cp IX='1'/>rl<cp IX='2'/>d<cp IX='3'/>
   <cp IX='4'/>!!<cp IX='5'/>
</Text>

有没有办法分别访问“cp”和“tp”节点之间的文本(例如:Wo,rl,d,!!)? 我可以将它们作为单个字符串获取但是,我需要像数组一样单独使用它们。感谢..

3 个答案:

答案 0 :(得分:1)

您可以在XML属性上使用text()方法:

var myXML : XML = <Text>
        <cp IX='0'/>
        <pp IX='0'/>
        <tp IX='0'/>Wo<cp IX='1'/>rl<cp IX='2'/>d<cp IX='3'/>
        <cp IX='4'/>!!<cp IX='5'/>
    </Text>

var text : String = myXML.text().toString();
trace (text); // output World!!

答案 1 :(得分:0)

基本上World!!Text节点的子节点。他们的类型是TEXT_NODE

所以我建议迭代所有Text个子节点,并将那些类型为TEXT_NODE的子节点存储为数组元素。

答案 2 :(得分:0)

您应该将<Text>标记内容作为字符串,并使用正则表达式拆分:

var array:Array = textTagContent.split(/<\S*[^>]*>/);
trace(array) // ,,,Wo,rl,d,,!!,

修剪它!

a = trimArray(a);

使用它!

trace(a) // Wo,rl,d,!!

修剪功能:

function trimArray(array:Array):Array {
    var a:Array = [];
    for each (var item in array) 
    {
        if (item) {
            a.push(item);
        }
    }
    return a;
}