Это - просто простой вопрос. Я в настоящее время использую Носорога Mozilla для разработки небольшого веб-приложения. Как один шаг, я должен получить веб-страницу и отфильтровать весь, его - узлы. Для того, чтобы сделать это, я использую E4X. Я думал, что мог сделать это как этот:
var pnodes = doc..*(p);
Но это производит ошибку. Как это сделано правильно?
(BTW: это - просто шаг для увеличения производительности. Код уже преуспевает, это просто немного медленно.)
Вы должны иметь возможность использовать следующее:
doc..*.(name() == "p")
Обратите внимание, что это ошибка в реализациях Rhino и SpiderMonkey, когда выражение фильтра name () == "p"
неправильно привязано к текущему узлу, поэтому ни один из определены методы XML
или XMLList
.
Еще одно работоспособное решение - поиск всех узлов p
в документе и накопление родительских узлов каждого в массиве.
var elements = [];
for each (var p in doc..p) {
var parent = p.parent();
if(elements.indexOf(parent) === -1)
elements.push(parent);
}