2010-03-23 7 views
1

ma structure xml ressemble à ceci:aide à la sélection des noeuds avec XPath

<entity id="1000070"> 
    <name>apple</name> 
    <type>category</type> 
    <entities> 
     <entity id="7002870"> 
      <name>mac</name> 
      <type>category</type> 
      <entities> 
       <entity id="7002907"> 
        <name>leopard</name> 
        <type>sub-category</type> 
        <entities> 
         <entity id="7024080"> 
          <name>safari</name> 
          <type>subject</type> 
         </entity> 
         <entity id="7024701"> 
          <name>finder</name> 
          <type>subject</type> 
         </entity> 
        </entities> 
       </entity> 
      </entities> 
     </entity> 
     <entity id="7024080"> 
      <name>iphone</name> 
      <type>category</type> 
      <entities> 
       <entity id="7024080"> 
        <name>3g</name> 
        <type>sub-category</type> 
       </entity> 
       <entity id="7024701"> 
        <name>3gs</name> 
        <type>sub-category</type> 
       </entity> 
      </entities> 
     </entity> 
     <entity id="7024080"> 
      <name>ipad</name> 
      <type>category</type> 
     </entity> 
    </entities> 
</entity> 

actuellement i ont sélectionné toutes les entités avec nœud de type qui ne sont pas la catégorie.

$ xmlDocument-> removeNodes ("// entité [pas (type = 'catégorie')]")

Je me demande comment je pourrais sélectionner tous les noeuds qui contiennent DonT type = catégorie ou type = sous-catégorie .

j'ai essayé avec:

$xmlDocument->removeNodes("//entity[not(type='category')] | //entity[not(type='sub-category')]") 

mais cela ne fonctionne pas!

Répondre

3

Essayez:

//entity[not(type='category' or type='sub-category')] 

Vous pouvez trouver ce testbed pour les expressions XPath utiles.

Questions connexes