AS3에서 E4X를 사용하여 XML 노드의 이름을 바꾸는 것
-
21-08-2019 - |
문제
AS3에는 다음과 같이 형식화 된 XML 객체가 있습니다.
<data>
<nodes>
<item></item>
<item></item>
...
</nodes>
<nodes>
<item></item>
<item></item>
...
</nodes>
...
</data>
내 문제는 노드 이름 ( "노드"및 "항목")의 이름을 더 관련성있는 것으로 바꾸고 싶다는 것입니다.노드"될 수있다"작가", 그리고 "안건"될 수있다"책".
그렇다면 AS3의 E4X 로이 작업을 수행하는 가장 좋은 방법은 무엇입니까?
해결책
당신은 사용할 수 있습니다 setName()
AS3의 XML 객체의 방법.
예시:
//extract all nodes named "nodes"
var l:XMLList=data..nodes;
for each(var n:XML in l){
n.setName("new_node_name");
}
//extract all nodes named "item"
var l2:XMLList=data..item;
for each(var n2:XML in l2){
n2.setName("new_item_name");
}
다른 팁
내가 아는 한 Actionscript 내에서 기본적으로 할 수있는 방법은 없지만, 여기에 그것을 달성 할 간단한 기능이 있습니다. 먼저 문자열로 변환 한 다음 간단한 정규 표현식을 사용하여 모든 인스턴스를 찾고 교체합니다.
function replaceAll(findTag:String, replaceWith:String, source:XML):XML
{
var xmls:String = source.toXMLString();
var findPattern:RegExp = new RegExp(findTag, "g");
xmls = xmls.replace(findPattern, replaceWith);
return new XML(xmls);
}
도움이되기를 바랍니다.
제휴하지 않습니다 StackOverflow