2009-05-28 3 views
0

Я пытаюсь отфильтровать некоторые XML в JavaScript с использованием E4X и иметь некоторые конкретные потребности. С учетом следующего:Фильтр E4X по тексту?

 
    var xml = <body> 
     <div> 
     <p>This is some text that I have.</p> 
     </div> 
    </div>; 

Я хочу найти документ для абзацев, начинающихся на «Это какой-то текст».

В настоящее время я могу следующее, чтобы получить в пункте:

xml..div(p.text().toString().indexOf("This is some text") === 0) 

Однако «реальный» XML является гораздо более сложным (думаю: регулярный веб-страницы). Нет никакой гарантии, что будет div, непосредственно воспитывающий абзац (ы) в вопросах. Могут быть другие абзацы до/после рассматриваемого параграфа (ов) в пределах одного и того же родительского элемента.

Любые идеи?

ответ

3

Используйте оператор двойной точки для поиска всех узлов нулевого нивелирования, а затем отфильтровывайте узлы, чтобы они включали только те, которые начинаются с нужной строки. Вы были близки, вам просто нужно избавиться от <DIV> так, как вы уже говорилось, < ДИВ > не может присутствовать .:

xml..p.(text().toString().indexOf("This is some text") == 0); 
Смежные вопросы