Tengo un documento XML que genero sobre la marcha, y necesito una función para eliminar cualquier nodo duplicado de él.¿Cómo puedo eliminar nodos duplicados en XQuery?
Mi función será similar a:
declare function local:start2() {
let $data := local:scan_books()
return <books>{$data}</books>
};
Salida de ejemplo es:
<books>
<book>
<title>XML in 24 hours</title>
<author>Some Guy</author>
</book>
<book>
<title>XML in 24 hours</title>
<author>Some Guy</author>
</book>
</books>
quiero sólo una entrada en mi etiqueta de libros de raíz, y hay otras etiquetas, como dicen folleto en que hay también que necesitan tener duplicados eliminados. ¿Algunas ideas?
Actualizado los comentarios siguientes. Por nodos únicos, me refiero a eliminar múltiples ocurrencias de nodos que tienen exactamente el mismo contenido y estructura.
Hola Dimitre, gracias por la respuesta; pero si lo entiendo correctamente, depende de que todos los elementos tengan la misma estructura que está incorporada en la consulta, por ejemplo, mostraría dos nodos iguales si tuvieran el mismo título y diferentes autores ... – Brabster
@Brabster Es para nada claro de su pregunta cómo debería definirse la prueba de la desigualdad/unicidad. Si lo define, le ayudará a encontrar una solución más simple –
Esto no parece funcionar con XPath 1.0, ¿podemos obtener una solución de trabajo XPath 1.0? – abarax