循环遍历XML文件并获取没有特定子节点的父节点

时间:2015-08-18 07:26:30

标签: jquery xml

我的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文件中有数百个atom:entry标签。 这里我需要做的是循环遍历每个atom entry标记并检查特定的子标记是否存在。比如检查是否有wplc:field id =&#34; type&#34;存在与否。

如果特定节点不存在,则忽略剩余的原子条目父节点,并仅获取没有该特定子节点的父节点。

我该如何实现这个目标?

1 个答案:

答案 0 :(得分:0)

您可以使用jquery解析xml,然后使用filter函数获取其中没有元素类型为id的节点:

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

<强> Working Demo

enter image description here