Algunos nodos en un documento XML tienen espacios de nombres, especificados con un prefijo definido.¿Por qué no hay sintaxis XPath para los nodos calificados de espacio de nombres?
Es posible especificar nombre-local() en XPath 1.0 y omitir los espacios de nombres.
Sin embargo, quiero permitir que el escritor de la XPath encuentre nodos utilizando su nombre completo calificado como identificador.
La forma recomendada es agregar declaraciones de espacio de nombres en el código de invocación (en mi caso, Java). ¡Pero esto significa que la persona que escribe Xpath no tiene la capacidad de trabajar con espacios de nombres!
¿Cómo encontramos los nodos por sus nombres completos utilizando XPath puro?
Si entiendo la pregunta correctamente, usted está preguntando por qué hay una necesidad de declarar un espacio de nombres usando una instrucción como 'addNamespace (" abc "," http://example.com ")' que luego permite hacer una La consulta de Xpath como '/ abc: node', en lugar de usar de alguna manera' http: // example.com' directamente en la consulta. ¿He interpretado la pregunta correctamente? –
@Jong Bor Sí, eso es todo. Sería bueno usar el prefijo abc directamente en la consulta XPath después de declarar que abc = http: //example.com de alguna manera dentro de XPath. Entiendo que las expresiones XPath son cortas y no sería habitual insertar definiciones en ella, pero técnicamente no hay nada que impida que eso sea posible en XPath. –
BTW buena pregunta, +1. Como se supone que los prefijos son simplemente azúcar sintáctico insignificante, mientras que los URI de espacio de nombres son lo que es significativo, se podría pensar que sería útil hacer coincidir un nombre de nodo con el URI de espacio de nombres sin tener que preocuparse por un prefijo, especialmente si XPath proporciona no hay manera de declarar un prefijo. – LarsH