texto - ¿La consulta de Xpath para seleccionar el nodo cuando el atributo no existe?
xpath buscar texto (2)
Quiero seleccionar nodos para los que no existe un atributo específico. Probé la función Not (), pero no funciona. ¿Hay alguna manera de esto?
Ejemplo: la siguiente consulta de Xpath:
group/msg[not(@owner)]
Debería recuperar el primer nodo pero no el segundo. Sin embargo, tanto SketchPath (herramienta para probar consultas Xpath) como mi código C # consideran que los 2 nodos están bien.
<group>
<msg id="EVENTDATA_CCFLOADED_XMLCONTEXT" numericId="14026" translate="False" topicId="302" status="translated" >
<text>Context</text>
<comment></comment>
</msg>
<msg id="EVENTDATA_CCFLOADED_XMLCONTEXT_HELP" numericId="14027" translate="False" topicId="302" status="translated" owner="EVENTDATA_CCFLOADED_XMLCONTEXT" >
<text>Provides the new data displayed in the Object.</text>
<comment></comment>
</msg>
</group>
De hecho, la función Not () funciona correctamente, es solo que tenía otras condiciones y los paréntesis no estaban configurados correctamente. errare humanum est .
En un motor XPath viejo y no muy estándar tuve que usar string-length(@attr)=0
por la misma razón.
Funciona para mí cuando se prueba con XPath Explorer (basado en la biblioteca Jaxen ).
Así que supongo que de hecho depende de la implementación de XPath.