GetUserProfileByName
(SharePoint/SPServices)에서 돌아온 responseXML 객체에서 특정 노드를 가져 오는 작업이 완전히 중단되었습니다. 특정 PropertyData
노드 (예제에서는 "FirstName")가 필요하고 "FirstName"값을 검색합니다.
...
<PropertyData>
<Name>UserProfile_GUID</Name>
<Values>
<ValueData>
<Value xmlns:q1="...">206b47c7-cfdc-...</Value>
</ValueData>
</Values>
</PropertyData>
<PropertyData>
<Name>FirstName</Name>
<Values>
<ValueData>
<Value xsi:type="xsd:string">Maarten</Value>
</ValueData>
</Values>
</PropertyData>
...
내가 알고 있기 때문에 : 값을 가져 오는 (I 일부 속성을 제거 예제를 위해) 반환 된 XML에서 부품 아래 ... 특정 노드가
를 검색, 문제가되지 않습니다 내가 FirstName
이라는 속성이 필요하다. 나는 느린 올바른 것이있을 때까지 PropertyData
노드의 전체 집합을 반복하고 싶지 않다. XPath에 나는 단지 말로 FirstName
를 선택할 수 있습니다
//PropertyData[Name='FirstName']/Values/ValueData/Value
그러나, 나는이 xData.responseXML
객체에 그렇게 할 수 없습니다. 나는 다음과 같은 필터를 시도 (변화의 모든 종류의) 발견하고 다른 것들 : 나는 많은 검색을 한
$(xData.responseXML).SPFilterNode("PropertyData").find("[Name*=FirstName]")
$(xData.responseXML).SPFilterNode("PropertyData").find("[Name*='FirstName']")
$(xData.responseXML).SPFilterNode("PropertyData").filter("[Name*=FirstName]")
$(xData.responseXML).SPFilterNode("PropertyData[Name='FirstName']")
을하지만 답을 찾을 수 없습니다. 모두가 시도했지만 작동하지 않는 많은 부분적인 대답이있었습니다. 어느 하나의 실마리 ...
미리 감사드립니다! 마틴
Paul,이게 효과가있는 것 같습니다. 나는'FirstName' 요소가 더 있는지 계속 확인합니다. 나는 두 개의 노드를 가지며, 하나는'FirstName'을위한 노드이고, 두 번째 노드는'SPS-PhoneticFirstName' 노드입니다. 하지만 50 노드를 반복하는 것보다 더 잘 살 수 있습니다! – Maarten
나는 소리 나는 분야를 제거하고 FirstName 분야를 포함하는 PropertyData 마디를 돌려 보내기 위하여 동일한 것을 수정했다. –
Paul, 다시 한 번 감사드립니다! 지금은 저를 위해 일하고 있습니다. 그러나 나는 당신의 마지막 개정을 구현하지 않았다. 전달 된 SP 프로필 속성 이름을 검색하는 함수를 작성했습니다. 따라서 어떤 종류의 사용자 정의 속성이 있는지 모르기 때문에 어떤 것도 제외 할 수 없습니다. – Maarten