Разбор прототипа AJAX.response XML в IE - PullRequest
0 голосов
/ 26 октября 2009

У меня есть веб-служба xml, которую я загружаю с использованием PrototypeJS. XML имеет правильный тип содержимого, он правильно сформирован и выглядит следующим образом:

<GetTokenResponse xmlns="http://tempuri.org/">
    <GetTokenResult>F655100D64F098F0AC33AFF414A4A0D5</GetTokenResult>
</GetTokenResponse>

Запрос AJAX завершается успешно, и я могу получить доступ к узлу GetTokenResult в IE и FF, но могу получить только текстовое содержимое узла в FF. Мой код ниже:

node = transport.responseXML.documentElement.getElementsByTagName('GetTokenResult')[0];
rawToken = (document.all) ? node.innerText : node.textContent;

Я пробовал innerText и innerHTML, а также children [0] и несколько других случайных предположений, но IE возвращает undefined при доступе к rawToken.

Кто-нибудь может протянуть руку? Спасибо, Адам

Ответы [ 3 ]

1 голос
/ 26 октября 2009

Попробуйте получить доступ к значению узла как:

rawToken = node.firstChild.data;

Это должно работать во всех современных браузерах, а также в IE.

0 голосов
/ 28 мая 2010

Чтобы получить текстовое содержимое, используйте firstChild.nodeValue

0 голосов
/ 26 октября 2009

node = transport.responseXML - это правильно.

Вы получите "узел" в качестве XML в формате string . Раздень остальное. Вам нужно превратить строку в XML-документ, прежде чем вы сможете манипулировать ею напрямую.

См .: Преобразование строки в документ XML в JavaScript

или см .: http://www.discussweb.com/html-css-javascript-coding-techniques/3308-convert-ordinary-string-into-xml.html

...