Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

129
Vistas
Uso de expresiones regulares para deshacerse de los prefijos xml de los espacios de nombres con javascript

Tengo un jabón y necesito eliminar todos los prefijos de espacios de nombres del texto.

En la siguiente muestra, los prefijos son "s" y "ans", pero pueden cambiar todo el tiempo. El jabón xml es algo así como:

 xmlStr=` <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ans="http://www.ans.gov.br/padroes/tiss/schemas"> <s:Body> <ans:respostaElegibilidadeWS> <ans:cabecalho> <ans:identificacaoTransacao> <ans:tipoTransacao>SITUACAO_ELEGIBILIDADE</ans:tipoTransacao> </ans:identificacaoTransacao> </ans:cabecalho> </ans:respostaElegibilidadeWS> </s:Body> </s:Envelope>`

Necesito:

 <Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ans="http://www.ans.gov.br/padroes/tiss/schemas"> <Body> <respostaElegibilidadeWS> <cabecalho> <identificacaoTransacao> <tipoTransacao>SITUACAO_ELEGIBILIDADE</tipoTransacao> </identificacaoTransacao> </cabecalho> </respostaElegibilidadeWS> </Body> </Envelope>

Yo he tratado:

 xmlStr = xmlStr.replace(/<(\/?)\w+:(\w+\/?) ?(\w+:\w+.*)?>/g, "$1$3");

pero sin mirar

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Para los datos de ejemplo, puede usar 2 grupos de captura y hacer coincidir los caracteres de palabra seguidos de dos puntos.

En el reemplazo use los 2 grupos de captura.

 (<\/?)\w+:(\w+[^>]*>)

Demostración de expresiones regulares

 xmlStr=` <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ans="http://www.ans.gov.br/padroes/tiss/schemas"> <s:Body> <ans:respostaElegibilidadeWS> <ans:cabecalho> <ans:identificacaoTransacao> <ans:tipoTransacao>SITUACAO_ELEGIBILIDADE</ans:tipoTransacao> </ans:identificacaoTransacao> </ans:cabecalho> </ans:respostaElegibilidadeWS> </s:Body> </s:Envelope>`; console.log(xmlStr.replace(/(<\/?)\w+:(\w+[^>]*>)/g, "$1$2"));

about 4 years ago · Juan Pablo Isaza Denunciar

0

Simplemente haga 2 expresiones regulares, es fácil reemplazarlas de esta manera.

 var xmlStr = ` <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ans="http://www.ans.gov.br/padroes/tiss/schemas"> <s:Body> <ans:respostaElegibilidadeWS> <ans:cabecalho> <ans:identificacaoTransacao> <ans:tipoTransacao>SITUACAO_ELEGIBILIDADE</ans:tipoTransacao> </ans:identificacaoTransacao> </ans:cabecalho> </ans:respostaElegibilidadeWS> </s:Body> </s:Envelope>`; var reg1 = /<\w+:/g var reg2 = /<\/\w+:/g console.log(xmlStr .replace(reg1, "<") .replace(reg2, "</") )

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda