Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

159
Visualizações
Document.evaluate() obteniendo el espacio de nombres predeterminado de la resolución de espacios de nombres

El siguiente código devuelve nulo para doc.evaluate() . Pero devuelve el elemento correcto para XPath //cat:symbol[@dog:label='banana']" . Entonces, creo que no está encontrando el espacio de nombres predeterminado.

Si ejecuto console.log(ns.lookupNamespaceURI("")); o console.log(ns.lookupNamespaceURI(null)); , devuelve http://www.w3.org/2000/svg , que es el valor xmlns del SVG. Entonces, ¿por qué el código no encuentra el elemento para "//symbol[@dog:label='banana']" ?

JavaScript

 fetch('test.svg') .then(response => response.text()) .then(data=>{ const parser = new DOMParser(); const doc = parser.parseFromString(data, "text/xml"); const ns = doc.createNSResolver(doc.documentElement); const res = doc.evaluate("//symbol[@dog:label='banana']", doc.documentElement, ns, XPathResult.FIRST_ORDERED_NODE_TYPE, null); console.log(res.singleNodeValue); })

prueba.svg

 <?xml version="1.0" encoding="UTF-8" standalone="no"?> <svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" xmlns:dog="http://dog.com/dog" xmlns:cat="http://cat.com/cat"> <symbol dog:label="banana"> <rect y="10" x="10" width="90" height="90" stroke-width="5" stroke="#f00" fill="#f00" fill-opacity="0.5" /> </symbol> <cat:symbol dog:label="banana"> <rect y="5" x="5" width="90" height="90" stroke-width="5" stroke="#f00" fill="#f00" fill-opacity="0.5" /> </cat:symbol> </svg>
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

XPath 1.0, que los proveedores de navegador admiten con la función de evaluate en un nodo de Document , no tiene el concepto de un espacio de nombres de elemento predeterminado, por lo que mientras que el solucionador de espacio de nombres creado asigna el prefijo vacío '' a un URI dentro del contexto de XPath 1.0 que no tiene significado como hay un nombre de elemento sin prefijo (por ejemplo, foo ) siempre selecciona un elemento con nombre local foo en ningún espacio de nombres.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda