Vous pouvez utiliser les opérateurs parenthèses—
             
              (
             
             et
             
              )
             
             —pour filtrer des éléments avec un nom d’élément spécifique ou une valeur d’attribut. Considérez l’objet XML suivant :
            
            var x:XML =  
    <employeeList> 
        <employee id="347"> 
            <lastName>Zmed</lastName> 
            <firstName>Sue</firstName> 
            <position>Data analyst</position> 
        </employee> 
        <employee id="348"> 
            <lastName>McGee</lastName> 
            <firstName>Chuck</firstName> 
            <position>Jr. data analyst</position> 
        </employee> 
    </employeeList>
            
             Les expressions suivantes sont toutes valides :
            
            
             - 
              
               
                x.employee.(lastName == "McGee")
               
               —Il s’agit du deuxième nœud
               
                employee
               
               .
               
- 
              
               
                x.employee.(lastName == "McGee").firstName
               
               —Il s’agit de la propriété
               
                firstName
               
               du deuxième nœud
               
                employee
               
               .
               
- 
              
               
                x.employee.(lastName == "McGee").@id
               
               —Il s’agit de la valeur de l’attribut
               
                id
               
               du deuxième nœud
               
                employee
               
               .
               
- 
              
               
                x.employee.(@id == 347)
               
               —Le premier nœud
               
                employee
               
               .
               
- 
              
               
                x.employee.(@id == 347).lastName
               
               —Il s’agit de la propriété
               
                lastName
               
               du premier nœud
               
                employee
               
               .
               
- 
              
               
                x.employee.(@id > 300)
               
               —Il s’agit d’un XMLList avec deux propriétés
               
                employee
               
               .
               
- 
              
               
                x.employee.(position.toString().search("analyst") > -1)
               
               —Il s’agit d’un XMLList avec deux propriétés
               
                position
               
               .
               
             Si vous tentez d’appliquer un filtre à des attributs ou des éléments qui n’existent pas, une exception est renvoyée. Par exemple, la dernière ligne du code suivant génère une erreur car il n’existe aucun attribut
             
              id
             
             dans le deuxième élément
             
              p
             
             :
            
            var doc:XML =  
            <body> 
                <p id='123'>Hello, <b>Bob</b>.</p> 
                <p>Hello.</p> 
            </body>; 
trace(doc.p.(@id == '123'));
            
             De même, la dernière ligne du code suivant génère une erreur car il n’existe aucune propriété
             
              b
             
             du deuxième élément
             
              p
             
             :
            
            var doc:XML =  
            <body> 
                <p id='123'>Hello, <b>Bob</b>.</p> 
                <p>Hello.</p> 
            </body>; 
trace(doc.p.(b == 'Bob'));
            
             Pour éviter ces erreurs, vous pouvez identifier les propriétés ayant les éléments ou les attributs correspondants, à l’aide des méthodes
             
              attribute()
             
             et
             
              elements()
             
             , comme dans le code suivant :
            
            var doc:XML =  
            <body> 
                <p id='123'>Hello, <b>Bob</b>.</p> 
                <p>Hello.</p> 
            </body>; 
trace(doc.p.(attribute('id') == '123')); 
trace(doc.p.(elements('b') == 'Bob'));
            
             Vous pouvez également utiliser la méthode
             
              hasOwnProperty()
             
             , comme dans le code suivant :
            
            var doc:XML =  
            <body> 
                <p id='123'>Hello, <b>Bob</b>.</p> 
                <p>Hello.</p> 
            </body>; 
trace(doc.p.(hasOwnProperty('@id') && @id == '123')); 
trace(doc.p.(hasOwnProperty('b') && b == 'Bob'));