2014-01-28 14 views
0

我必須將我的項目表單XML更改爲JavaScript(至少它的某些部分)。 所以我不得不建造這樣的:如何使用javascript從XML獲取元素

$xml = simplexml_load_file("http://...); 
$profile = $xml->profile; 
$user_id = $profile->user_id; 

現在我想翻譯成JavaScript這讓我用:

var xmlHttp_subscribe = new XMLHttpRequest(); 
xmlHttp_subscribe.onreadystatechange=postCall; 
xmlHttp_subscribe.open("GET","http://...",true); 
xmlHttp_subscribe.send(); 

現在功能postCall()

function postCall(){ 
    var t = document.getElementsByName("MY_API").value; 
    alert('t'+t); 
    var p = document.getElementsByName("profile").value; 
    alert('p'+p); 
    var h = document.getElementsByName("user_id").value; 
//...// 
} 

的XML是在我的http://下面是這樣的:

<MY_API> 
    <profile> 
    <user_id>the_user_id</user_id> 
    </profile> 
</MY_API> 

我想要做的是以純文本形式獲取此'the_user_id'部分作爲字符串。 有沒有人有任何想法如何做到這一點? 我在尋找好的方向嗎?

感謝您的任何幫助。

回答

0

沒有函數「getElementsByName」。你需要的是getElementsByTagName。

Check this link out, it should be what you're looking for

+0

你的答案是混亂因爲沒有函數「getElementsByName」,但只有「getElementsByTagName」。 –

+0

感謝gwag。正確編輯答案。 – Pineda

+0

機械化工作,但我用來獲取XML文件的API行爲不當。所以這是我的問題。很多謝謝你的回答。 – user2424947

0

正如皮內達建議,正確的函數名稱爲getElementsByTagName,並且除了正確的屬性名稱不是「價值」,但nodeValue,所以你應該使用

function postCall(){ 
    var h = document.getElementsByTagName("user_id").nodeValue; 
}