2012-10-18 2 views
0

초보자입니다. 확인란이있는 트리가있는 애플리케이션이 있습니다. 체크 박스를 미리 채우기 전에 사용자가 체크 박스를 체크하고 싶습니다.HTML 페이지에 XML/JSON 컨텐츠 표시

아래에 표시된 것처럼 백엔드 perl 스크립트에서 XML 형식을 가져 오는 중이므로 XML 아래에만 0, 43,44,45,46 및 50 만 오면 해당 확인란 만 페이지에 체크해야합니다 로드. 페이지로드시 체크 된 확인란을 표시하고 싶습니다. 어떻게 할 수 있습니까? .......?

나는 많은 예제를 시도했다. 내 문제에 대한 해결책을 얻지 못하고 있습니다. 아래는 펄 스크립트에서 가져 오는 내 XML 형식의 데이터입니다.

<perldata> 
<hashref memory_address="0x86f4880"> 
<item key="0">1</item> 
</hashref> 
</perldata> 
<perldata> 
<hashref memory_address="0x86f4880"> 
<item key="43">1</item> 
</hashref> 
</perldata> 
<perldata> 
<hashref memory_address="0x86f4880"> 
<item key="44">1</item> 
</hashref> 
</perldata> 
<perldata> 
<hashref memory_address="0x86f4880"> 
<item key="45">1</item> 
</hashref> 
</perldata> 
<perldata> 
<hashref memory_address="0x86f4880"> 
<item key="46">1</item> 
</hashref> 
</perldata> 
<perldata> 
<hashref memory_address="0x86f4880"> 
<item key="50">1</item> 
</hashref> 
</perldata> 

답변

0

누락 된 정보가 많이 있지만 도움을 드리겠습니다. 나는 당신이 전체 XML을 얻고 있고 jQuery 나 다른 라이브러리를 사용하고 있지 않다는 가정을 할 것이다. 먼저 XML에 루트 노드가 없습니다. .....

// if you are getting the XML from AJAX call 
//var xmlDoc = xmlhttp.responseXML; 

// if you are have the XML as String 
var xmlStr = '<root><perldata> \ 
<hashref memory_address="0x86f4880"> \ 
<item key="0">1</item> \ 
</hashref> \ 
</perldata> \ 
<perldata> \ 
<hashref memory_address="0x86f4880"> \ 
<item key="43">1</item> \ 
</hashref> \ 
</perldata> \ 
<perldata> \ 
<hashref memory_address="0x86f4880"> \ 
<item key="44">1</item> \ 
</hashref> \ 
</perldata> \ 
<perldata> \ 
<hashref memory_address="0x86f4880"> \ 
<item key="45">1</item> \ 
</hashref> \ 
</perldata> \ 
<perldata> \ 
<hashref memory_address="0x86f4880"> \ 
<item key="46">1</item> \ 
</hashref> \ 
</perldata> \ 
<perldata> \ 
<hashref memory_address="0x86f4880"> \ 
<item key="50">1</item> \ 
</hashref> \ 
</perldata> \ 
</root>'; 
var xmlDoc; 
if (window.DOMParser) 
{ 
    var parser=new DOMParser(); 
    xmlDoc=parser.parseFromString(xmlStr,"text/xml"); 
}else // Internet Explorer 
{ 
    xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); 
    xmlDoc.async=false; 
    xmlDoc.loadXML(xmlStr); 
} 

// get all the item tags from the XML 
var itemTags = xmlDoc.getElementsByTagName("item"); 
// get all the items to be checked 
var inputsToCheck = {}; 
for(var i = 0, len = itemTags.length; i < len; i++) { 
    var itemTag = itemTags[i]; 
    inputsToCheck[itemTag.getAttribute("key")] = true; 
} 

// loop through the inputs and check the items to be checked 
var inputs = document.getElementsByTagName("input"); 
for(var i = 0, len = inputs.length; i < len; i++) { 
    var input = inputs[i]; 
    if(input.getAttribute("type") == "checkbox" && inputsToCheck[input.getAttribute("name")]) 
     input.setAttribute("checked", "true"); 
} 
+0

cbayram 어이가 ........ 괜찮나 페이지로드에서이 함수를 호출하는 응답을 주셔서 감사합니다 : 그럼 당신은 자바 스크립트에서 XML을 구문 분석 할 수 있습니다 그래서 당신의 체크 박스를 선택? 이 어리석은 질문에 대한 미안합니다 –

+0

Mulla, 함수를 만들 수 있습니다 (yourFunction이라고 부름) body 태그에서 호출 ** ** ** – cbayram

관련 문제