2014-07-22 2 views
-1
에서 XML 문자열을 변환

난 단지 태그와 속성이없는 어떤 프롤로그 및 태그구문 분석과 자바 스크립트

<red>hello <blue>blue</blue> world</red> 

같은 색상에 상관 네임 스페이스와 XML을 단순화하고 난 목록으로 변환해야합니다

실제로
<red>hello </red><blue>blue</blue><red> world</red> 

I이 필요합니다

는 안드에서이 작업을 수행하는 가장 간단한 또는 가장 좋은 방법은 무엇입니까
[[;red;]hello ][[;blue;]blue][[;red;] world] 

jQuery의 도움을받는 vaScript?

+0

@Andy 난 (/ () /)'사항 String.split를 사용하여 태그 이름을 유지하도록 사용 스택 생각되었고 방법은 jQuery'$ (string)'과'map' 또는'each'를 사용합니다. – jcubic

답변

0

정규식을 사용하여 스택 기반 구문 분석 기능을 사용하여 토큰으로 분할했습니다. `하지만 어쩌면 단순도이다

function(string) { 
    var stack = []; 
    var output = []; 
    var parts = string.split(/(<\/?[a-zA-Z]+>)/); 
    for (var i=0; i<parts.length; ++i) { 
     if (parts[i][0] == '<') { 
      if (parts[i][1] == '/') { 
       if (stack.length) { 
        stack.pop(); 
       } 
      } else { 
       // get name of the tag 
       stack.push(parts[i].replace(/^<|>$/g, '')); 
      } 
     } else { 
      if (stack.length) { 
       // top of the stack 
       output.push('[[;' + stack[stack.length-1] + ';]'); 
      } 
      output.push(parts[i]); 
      if (stack.length) { 
       output.push(']'); 
      } 
     } 
    } 
    return output.join(''); 
}