Я получаю следующую XML-подобную строку с помощью $ .ajax () get. Поскольку это недопустимо, я не могу использовать dataType: 'xml' или анализировать с $ .parseXML (). Использование xml в качестве строки и использование jQuery для обхода, похоже, работает нормально. Я могу использовать метод find () для чтения атрибутов, но не могу установить значение. (Я могу получить только XML, он предоставляется другим отделом, и я не могу его изменить.)
TLDR: необходимо манипулировать строкой xml. Добавьте значения пользователя, пароля и типа, чтобы они могли быть отправлены обратно на сервер.
var xml = '<attrs xmlns="http://www.blah.com/abc/wxyz"><attr name="user" type="string"/><attr name="password" type="string"/><attr name="type" type="string" possibilities="typeOne,typeTwo,typeThree,typeFour">typeOne</attr></attrs>';
/*
<attrs xmlns="http://www.blah.com/abc/wxyz">
<attr name="user" type="string"/>
<attr name="password" type="string"/>
<attr name="type" type="string" possibilities="typeOne,typeTwo,typeThree,typeFour">typeOne</attr>
</attrs>
*/
// The following works fine. I get the possibilites, split them, and add them to a form:
$.each( $(xml).find('attr[possibilities]').attr('possibilities').split(','), function(index,value){
options += '<option value="'+value+'">'+value+'</option>';
});
// I have tried the text(), prop(), and attr() methods. From what I've read you are supposed to use prop() instead of attr for setting values, but I tried attr anyway.
$(xml).find('attr[name=user]').attr( 'textContent', 'TEST' );
$(xml).find('attr[name=user]').text( 'TEST' );
$(xml).find('attr[name=user]').prop( 'textContent', 'TEST' );
// After attempting attr, text, and prop, the textContent property shows nothing (not undefined):
console.log( 'textContent ' + $(xml).find('attr[name=user]').prop('textContent') );
Я относительно новичок в этом, так что, возможно, мой селектор просто не прав. Любая помощь приветствуется. Заранее спасибо.