(jQuery)XMLからの属性の取得方法について

お世話になっております。

ワークフロー承認後に掲示板を投稿する を参考に、掲示板投稿時に「組織名を表示する」状態で、優先する組織を選択した状態で投稿させたいと思っています。

Garoon SoapAPIのBaseGetUsersByLoginNameからにprimary_organizationのプロパティがあるので、こちらを取得し、BulletinCreateTopicsのcreator_group_idに渡せれば実現できると考えています。

 

BaseGetUsersByLoginNameをよびだして、jQueryのajaxを使ってresponseを取得することはできましたが、そこからprimary_organizationの属性を取得する方法がわからず詰まっています。

データ取得部分

var users = function(userID) {
var defer = $.Deferred();
var request = SOAP_TEMPLATE;
request = request.replace('${PARAMETERS}',
'<parameters><login_name>' + userID + '</login_name></parameters>');
request = request.split('${ACTION}').join('BaseGetUsersByLoginName');
request = request.replace(
'${CREATED}', moment().add(-9, 'hours').format('YYYY-MM-DDTHH:mm:ssZ'));
$.ajax({
type: 'post',
url: '/g/cbpapi/base/api.csp',
cache: false,
async: false,
data: request
})
.then(function(response) {
defer.resolve($(response).attr('primary_organization'));
});
// 本来はエラー処理を実施


return defer.promise();
};

得られたresponse(例)

<returns>  
  <user version="1245919830" order="1" login_name="u1" name="u1"  
   status="0" reading="user1" url="http://cybozu.co.jp" email="user1@cybozu.co.jp"  
   phone="9180xxxxxx" description="user1 is ..." title="test test"  
   primary_organization="2">  
  </user> 
</returns>

このresponseからprimary_organizationの値である"2"を取得するにはどうしたらよいでしょうか?

データ取得部分の17行目の処理だとは思うのですが、うまくいきません
(現状ではundefinedとなります)

 

TFさん

お世話になっております。

<user>要素に対して.attr()を行う必要があるかともいます。

defer.resolve($(response).find('user').attr('primary\_organization'));

江田さん

お世話になっております。
ありがとうございます!ご教授の通りで属性を取得することができました。