1

我从一个大的 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、!!)?我可以将它们作为单个字符串获取,但是我需要像在数组中一样单独使用它们。谢谢..

4

3 回答 3

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!!
于 2013-07-17T10:25:19.813 回答
0

您应该将<Text>标签内容作为字符串获取,并使用 split 和正则表达式:

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;
}
于 2013-07-17T10:34:48.450 回答
0

基本上Wo,rl和是节点的子d节点。他们的类型是。!!TextTEXT_NODE

所以我建议遍历所有Text孩子,并将那些类型TEXT_NODE作为数组元素存储。

于 2013-07-17T08:46:43.080 回答