我完全停留在从GetUserProfileByName
(SharePoint / SPServices)返回的 responseXML 对象中检索特定节点。我需要一个特定的PropertyData
节点(在示例中为“FirstName”),然后检索“FirstName”的值。检索值不是问题,检索特定节点是......
下面是返回的 XML 的一部分(为了示例,我删除了一些属性):
...
<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>
...
因为我知道我需要 property 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']")
我做了很多搜索,但无法找到答案。有很多部分答案,我都尝试过,但没有奏效。任何一个线索...
提前致谢!马丁