2011-01-11 3 views
2

일부 결과를 웹 파트에 쓰도록 Microsoft Office SharePoint Server 검색 서비스에 쿼리하고 있습니다. 쿼리가 올바르게 작동하지만 JQuery를 통해 XML 응답을 구문 분석하는 데 문제가 있습니다. 이 값의 선두로부터의xml을 jquery로 구문 분석

<document> 
<properties> 
<Property> 
    <Name>p1</Name> 
    <Type>String</Type> 
    <Value>blue</Value> 
    </Property> 
<Property> 
    <Name>title</Name> 
    <Type>string</Type> 
    <Value>titreA</Value> 
    </Property> 
    </properties> 
</document> 
<document> 
<properties> 
<Property> 
    <Name>p1</Name> 
    <Type>String</Type> 
    <Value>blue</Value> 
    </Property> 
    <Property> 
    <Name>title</Name> 
    <Type>string</Type> 
    <Value>titreB</Value> 
    </Property> 
    </properties> 
</document> 
<document> 
<properties> 
<Property> 
    <Name>p1</Name> 
    <Type>String</Type> 
    <Value>green</Value> 
    </Property> 
<Property> 
    <Name>title</Name> 
    <Type>string</Type> 
    <Value>titreC</Value> 
    </Property> 
    </properties> 
</document> 
<document> 
<properties> 
<Property> 
    <Name>p1</Name> 
    <Type>String</Type> 
    <Value>red</Value> 
    </Property> 
<Property> 
    <Name>title</Name> 
    <Type>string</Type> 
    <Value>titreD</Value> 
    </Property> 
    </properties> 
</document> 

가 어떻게 P1 값을 검색 할 수 있으며, 수 : 아래

는 XML 응답입니까? 이처럼 : 블루 (2), 녹색 (1), (1)

+0

과 같다. – ScottE

+0

응답을 처리하는 자바 스크립트를 게시해야합니다. – harpo

답변

2

XML 데이터 같은 것을이 있습니다. 가정하면 data는 XML 데이터입니다.

var name = 'p1'; 
$data = $(data); 
$p1 = $data.find('Name:contains("'+name+'")').parent('Property'); 
p1Value = $p1.map(function(i,v){ 
    return $(v).children('Value').text(); 
}).get(); 
alert(p1Value); 

p1Value는 이름이 'p1'인 값의 배열입니다.

p1Value[0]은 '파란색'과 같습니다.

발생 횟수도 원하는 경우이 작업을 수행 할 수 있습니다.

var name = 'p1'; 
$data = $(data); 
$p1 = $data.find('Name:contains("'+name+'")').parent('Property'); 
p1Values = {}; 
$p1.each(function(i,v){ 
    var val = $(v).children('Value').text(); 
    if(p1Values.hasOwnProperty(val)){ 
    p1Values[val]++; 
    } 
    else{ 
    p1Values[val] = 1; 
    } 
}); 

p1Values는 값이 속성 이름이고 해당 값이 속성 값인 개체입니다.

p1Value['blue']는 XML을 구문 분석하는 데 사용하는 자바 스크립트를 작성하십시오 2.

+0

는 내가 원하는 것처럼 작동하는 것 같습니다 :) 정말 이해하기 쉽습니다. 당신이 그것을 이해할 때 Jquery 정말 강력합니다. – LoKtO

0

가정 빨간색 당신은 HTML과 같은 jQuery의 방법을 사용하여 '해석'할 수

.ajax(
    // calling code here 
    success: function(data, status, xhr) { 
    var jqData = $(data); 
    var countMap = {}; 
    jqData.find("Value").each(function() { 
     // filter for only P1 
     var jqThis = $(this); 
     if(jqThis.parent().find("Name").text == "p1") { 
      if(countMap[jqThis.text]) { 
       countMap[jqThix.text]++; 
      } else { 
       countMap[jqThis.text] = 1; 
      } 
     } 
    }); 
    // From here countMap should contain the value in Value for each p1 as a key 
    // and a count of occurrences as a value 
    } 
); 
관련 문제