2010-09-01 3 views
1

Скажем, у меня есть код:JQuery XML синтаксический вопрос

<outer> 
    <inner name="name0" type="type0" /> 
    <inner name="name1" type="type1" /> 
    <inner name="name2" type="type2" /> 
</outer> 

Я разбора XML с помощью JQuery и я внутри каждого контура внешнего тега:

$(xml).find('outer').each(function() { 
    //what goes here? 
}); 

Say Я знаю значения, которые могут отображаться в имени имени <inner>. Как я, в приведенном выше коде, получить соответствующий тип из данного тега <inner>.

Пример:

Я есть строка var name = "name1" Внутри каждого цикла, мне нужно вытащить type1 из <inner> тега, который имеет имя = «name1». Благодаря

+0

Уход за звонком в комментарии @ Ника ниже? –

ответ

0

Вы можете использовать attribute-equals selector, как это:

var name="name1"; 
$(xml).find('outer').each(function() { 
    var type = $(this).children("[name='" + name + "']").attr("type"); 
    //use type 
}); 

You can give it a try here, если XML является точно, что вы писали и не подмножество, просто удалите .find('outer'), так как корневой элемент уже где ты хочешь быть.

+0

@downvoter - прокомментировать? –

+0

@Nick - я не спускал вниз, но я подозреваю, что он имеет отношение к этой части - '$ (xml)'. Все остальное - твердое тело. – Anurag

+0

@Anurag - эта часть работает, см. Демонстрацию для себя ... это то, как вы обычно работаете с XML в jQuery, сначала превращая его в фрагмент документа. –

0
var name = "name1"; 
$(xml).find('outer').each(function() { 
    var type = $(this).children('[name=' + name + ']').attr('type'); 
}); 
+0

Мне также интересно узнать о нисходящем. – Ender

3

Я разбора XML с помощью JQuery

Не совсем. $() не содержит анализатор XML; вы анализируете его как HTML, используя парсер браузера innerHTML. Поскольку ваш вход недействителен HTML, вы можете получить любой старый странный DOM в качестве вывода, особенно в IE, который не очень нравится пользовательским элементам.

Довольно сложно получить парсер XML в кросс-браузере; он гораздо менее хорошо поддерживается, чем XMLHttpRequest возвращает XML-документ. Во многих современных браузерах вы можете запросить new DOMParser, но для IE вам необходимо создать объект ActiveXObject MSXML2.DOMDocument, а для нескольких более старых браузеров вы должны document.implementation.createDocument (и даже тогда метод load не является стандартным или поддерживается повсеместно).

+0

Например http://stackoverflow.com/questions/2908899/jquery-wont-parse-xml-with-nodes-called-option/2910732#2910732 или http://stackoverflow.com/questions/3054411/how-do- я-синтаксический-XML-с-Jquery/3054523 # 3054523 –

Смежные вопросы