我从一个大的 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、!!)?我可以将它们作为单个字符串获取,但是我需要像在数组中一样单独使用它们。谢谢..
我从一个大的 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、!!)?我可以将它们作为单个字符串获取,但是我需要像在数组中一样单独使用它们。谢谢..
您可以在 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!!
您应该将<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;
}
基本上Wo
,rl
和是节点的子d
节点。他们的类型是。!!
Text
TEXT_NODE
所以我建议遍历所有Text
孩子,并将那些类型TEXT_NODE
作为数组元素存储。