2012-08-28 2 views
2

ColdFusion 백엔드에서 만든 XML을 JQWidgets 트리에서 사용하기 위해 특별히 형식화 된 Javascript 변수로 변환해야합니다 (배경 정보는 http://www.jqwidgets.com/community/topic/xml-tree-with-empty-nodes/#post-7215 참조).ColdFusion XML to Javascript 변수

XML을 반복하고 자바 스크립트를 적절하게 만드는 가장 쉬운 방법은 무엇입니까? XML의 복잡성으로 인해 ColdFusion ToScript가 작동하지 않을 것이라고 생각하지만 사용하고자합니다.

예 XML 데이터 :

<Role> 
     <RoleID>16</RoleID> 
     <RoleName>Role C</RoleName> 
     <Certifications> 
      <Certification> 
       <CertificationID>45</CertificationID> 
       <CertificationName>Certification 2</CertificationName> 
       <Requirements> 
        <Requirement> 
         <RequirementID>678</RequirementID> 
         <RequirementName>Requirement A</Requirement> 
        </Requirement> 
       </Requirements> 
      </Certification> 
     </Certifications> 
    </Role> 
    <Role> 
     <RoleID>16</RoleID> 
     <RoleName>Role D</RoleName> 
     <Certifications> 
      <Certification> 
       <CertificationID/> 
       <CertificationName/> 
      </Certification> 
     </Certifications> 
    </Role> 
</Roles> 

예 자바 스크립트 변수 : 당신은 바퀴를 재발견하고 싶지 않은 경우

var source = [ 
    { label: "Role C", expanded: true, items: [ 
     { label: "Certification 2", items: [ 
      { label: "Requirement A" } 
     ]}, 
    ]}, 
    { icon: "", label: "Role D" } 
]; 
+2

XML 변수를 XML 변수로 읽은 다음 객체를 가로 질러 미러링 된 CF 구조체를 만들고 serializeJSON()을 사용하여 json 문자열을 가져옵니다. 하자 소스 = 그 json 문자열. 참조 : http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WSc3ff6d0ea77859461172e0811cbec133ba-7fd9.html#WS95DFBAE4-DB38-46db-8F18-49154C7088FD – Henry

+0

@Henry - XML ​​변수가 있습니다. CF 구조체 - 또는 적어도 그것을 얻는 방법을 안다. 거기에서 JSON 객체를 만드는 것이 어떻게 도움이되는지 이해할 수 없습니다. 나는 JSON을 많이 사용하지 않았다. 또한 JSON을 필요한 특정 형식으로 변환하는 문제가 있습니다. 처음부터 다시 시작해야한다고 생각합니다. 여전히 부모/자식 관계를 유지하면서 데이터를 반복해야합니다. – shimmoril

+0

"example javascript variable"은 JSON을 사용합니다. 일단 CF에 데이터가 있으면'var source = #serializeJson (Data) #'만하면됩니다. 이렇게하면 XML을 CFML로 변환 할 수 있습니다. 헨리가 제공하는 링크는 시작부터 시작합니다. 문제를 해결하기 위해 다시 돌아와서 시도한 것과 중단 된 위치로 질문을 업데이트하십시오. –

답변

2

, 당신은 XML을 구문 분석 Xml2Struct project을 사용할 수 있습니다 구조체에 넣은 다음 SerializeJson()을 사용하여 Javascript 객체를 가져옵니다.

예 :

<cfsavecontent variable="myXml"> 
<Roles> 
    <Role> 
     <RoleID>16</RoleID> 
     <RoleName>Role C</RoleName> 
     <Certifications> 
      <Certification> 
       <CertificationID>45</CertificationID> 
       <CertificationName>Certification 2</CertificationName> 
       <Requirements> 
        <Requirement> 
         <RequirementID>678</RequirementID> 
         <RequirementName>Requirement A</RequirementName> 
        </Requirement> 
       </Requirements> 
      </Certification> 
     </Certifications> 
    </Role> 
    <Role> 
     <RoleID>16</RoleID> 
     <RoleName>Role D</RoleName> 
     <Certifications> 
      <Certification> 
       <CertificationID/> 
       <CertificationName/> 
      </Certification> 
     </Certifications> 
    </Role> 
</Roles> 
</cfsavecontent> 

<cfinvoke component="xml2Struct" method="ConvertXmlToStruct" xmlNode="#myXml#" str="#{}#" returnVariable="result"> 

<cfdump var="#serializeJson(result)#"> 

프로젝트를 사용하지 않는 경우에도, 당신은 XML을 구문 분석하는 방법의 좋은 예를 들어 소스를 볼 수 있습니다.

+0

러스, 고마워. – shimmoril