Я полностью застрял в получении определенного узла из объекта responseXML, который я получил от GetUserProfileByName
(SharePoint/SPServices). Мне нужен конкретный узел 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>
...
Поскольку я знаю, что мне нужно свойство 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']")
Я сделал много поисков, но не смог найти ответ. Было много частичных ответов, которые я пробовал, но не работал. Любая подсказка...
Заранее спасибо! Мартен