2015-08-18 3 views
0

У меня есть файл XML, как нижеLoop с помощью файла XML и получить родительский узел, который не имеет конкретных дочерний узел

<atom:entry> 
    <atom:id>Alex Kane</atom:id> 
    <atom:title type="text/html">Alex Kane</atom:title> 
    <atom:author> 
    <atom:uri>uid=wpsadmin,o=defaultWIMFileBasedRealm</atom:uri> 
    <atom:name>uid=wpsadmin,o=defaultWIMFileBasedRealm</atom:name> 
    </atom:author>  
    <wplc:field id="imagepath">/wps/wcm/connect/4a2dffd8-bf49-47f0-8b9a-5e842f6fa63b/Kane_Alex_whitecoat_191x288.png?MOD=AJPERES 
    <![CDATA[&amp;CACHEID=4a2dffd8-bf49-47f0-8b9a-5e842f6fa63b]]> 
    </wplc:field> 
    <wplc:field id="gender">MALE</wplc:field> 
    <wplc:field id="doc_source">default</wplc:field> 
    <wplc:field id="degree">M.D.</wplc:field> 
    <wplc:field id="defaultcontext">/poc</wplc:field> 
    <wplc:field id="contentsourcetype">Seedlist</wplc:field> 
    <wplc:field id="contentSourceType">Seedlist</wplc:field>  
    <wplc:field id="docid">Alex Kane</wplc:field> 
    <wplc:field id="title">Alex Kane</wplc:field> 
    <wplc:field id="language">English</wplc:field> 
    <wplc:field id="doctortype">Plastic Surgery</wplc:field> 
    <wplc:field id="condition">3D Surface Motion Capture</wplc:field> 
    <wplc:field id="condition">3D Surface Scan</wplc:field> 
    <wplc:field id="condition">Kinematic Motion Capture</wplc:field>  
    <wplc:field id="security_ids">Z6QReDeIPO2JIT62BDIJM8CKHDAJMG6P1P2MM8C3BEIJMK61BPAMPCCG1CIJP8623</wplc:field> 
    <wplc:field id="type">Specialist</wplc:field> 
    <wplc:field id="description">Plastic Surgery</wplc:field> 
    <wplc:field id="contentPath">/Blog Solo Template v70/Blog/Home/95c189804d4268bf8d49ede9170f1e3d</wplc:field> 
</atom:entry> 

Как выше у меня сотни атома: теги ввода есть в моем файле XML , Здесь то, что мне нужно сделать, это цикл через каждый тег ввода атома и проверка наличия или отсутствия определенного дочернего тега. Например, проверьте, существует ли wplc: поле id = "type" существует или нет.

Если конкретный узел не существует, игнорируйте оставшийся родительский узел ввода атома и получите только тот родительский узел, у которого нет этого конкретного дочернего узла.

Как этого добиться?

+0

Может вы изменяете этот xml. можете ли вы изменить id на другой атрибут? поскольку идентификаторы должны быть уникальными. –

+0

Нет, я не могу изменить его, поскольку он является источником атома, поступающим от клиента. :-( – Vamshi

ответ

0

Вы можете разобрать XML с помощью JQuery, а затем использовать функцию фильтра, чтобы получить узлы, которые не имеют тип элемента, как идентификатор в нем:

$('atom\\:entry').filter(function(){ 
return $(this).find('#type').length == 0 ; 
}) 

Working Demo

enter image description here

+0

Hi Milind, где я должен видеть результат? – Vamshi

+0

@Vamshi: в демо я тиражировал элемент «atom: entry» трижды. 1-й и 3-й элементы не имеют идентификатора типа в них, который затем затем вычеркнул в демо http://jsfiddle.net/t92nwmw1/ –

+0

Да, я вижу это в скрипке. Но где я могу увидеть его в браузере? на консоли или ...? – Vamshi

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