문제

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);
    }

도움이되기를 바랍니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top