Skip to main content

xPath

XPath

Nota: Para ver los namespaces que corresponden a cada archivo. En la consola de Exist put archivo.xml o put archivo.rdf

  • El elemento RDF que se encuentra en el primer nivel. Declaramos el namespace que contiene las reglas.
declare namespace rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
/rdf:RDF
  • Selecciona todos los elementos Person
declare namespace foaf = "http://xmlns.com/foaf/0.1/";
//foaf:Person
  • Selecciona todos los elemetos descendientes de foaf:Person
declare namespace foaf = "http://xmlns.com/foaf/0.1/";
//foaf:Person/*
  • Selecciona de cada documento i de todos los elementos foaf:Person el primero que se encuentra encada documento.
declare namespace foaf = "http://xmlns.com/foaf/0.1/";
//foaf:Person[1]
  • Selecciona de cada documento y el ultimo elemento foaf:Person
namespace foaf = "http://xmlns.com/foaf/0.1/";
//foaf:Person[last()]
  • Selecciona todos los atributos rdf:nodeID de los elementos foaf:Person
declare namespace rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
declare namespace foaf = "http://xmlns.com/foaf/0.1/";
//foaf:Person/@rdf:nodeID
  • Mostrar los elementos foaf:givenname que tienen atributo rdf:nodeID
declare namespace rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
declare namespace foaf = "http://xmlns.com/foaf/0.1/";
//foaf:Person[@rdf:nodeID]/foaf:givenname
  • Seleccio elemeto por su id rdf:nodeID el valor 000003
declare namespace rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
declare namespace foaf = "http://xmlns.com/foaf/0.1/";
//foaf:Person[@rdf:nodeID=”000003”]
declare namespace rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
declare namespace foaf = "http://xmlns.com/foaf/0.1/";
//foaf:Person[@rdf:nodeID=”000003”]/foaf:givenname
  • Mostrar foaf:givenname
declare namespace rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
declare namespace foaf = "http://xmlns.com/foaf/0.1/";
//foaf:Person[@rdf:nodeID=”000003”]/foaf:givenname/text()
  • Mostrar elementos que tienen uno de estos intereres foaf:topic_interest “XML” o “BBDD”
declare namespace rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
declare namespace foaf = "http://xmlns.com/foaf/0.1/";
//foaf:Person[foaf:topic_interest=”XML" or foaf:topic_interest=”BBDD”]/foaf:givenname/text()
  • Contar los elemento anteriores
declare namespace rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
declare namespace foaf = "http://xmlns.com/foaf/0.1/";
count(//foaf:Person[foaf:topic_interest=”XML” or foaf:topic_interest=”BBDD”])
  • Devuelve una cadena de texto con todos los elementos de caso anterior
declare namespace rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"; 
declare namespace foaf = "http://xmlns.com/foaf/0.1/";
string(//foaf:Person[foaf:topic_interest=”XML”   or foaf:topic_interest=”BBDD”]) 
  • Devuelve un boolean
declare namespace rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
declare namespace foaf = "http://xmlns.com/foaf/0.1/";
boolean(//foaf:Person[foaf:topic_interest=”XML”   or foaf:topic_interest=”BBDD”]) 
  • Devuelve los elementos que tiene menos de dos conocidos
declare namespace rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
declare namespace foaf = "http://xmlns.com/foaf/0.1/";
//foaf:Person/foaf:knows[count(foaf:Person)<2]
  • Encuentra todos los elementos que la etiqueta comienza por “rdf”
declare namespace rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
declare namespace foaf = "http://xmlns.com/foaf/0.1/";
//*[starts­with(name(),”rdf”)] 
  • Encuentra todos los elementos en los que la cadena del nombre contenga “knows”
declare namespace rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
declare namespace foaf = "http://xmlns.com/foaf/0.1/";
//*[contains(name(),”knows”)
  • Buscar en tres documentos escogidos las personas interesadas en XML
declare namespace foaf = "http://xmlns.com/foaf/0.1/";
declare namespace rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
document('acortesg.rdf','jtallonp.rdf','jhiguerasa')//foaf:Person[foaf:topic_interest="XML"]/foaf:givenname/text()
  • Retornar aquelles persones que el seu nom comença per J
declare namespace foaf = "http://xmlns.com/foaf/0.1/";
declare namespace rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
//foaf:Person/foaf:givenname[starts-with(text(),'J')]/text()