"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo manejar espacios de nombres XML en consultas Java XPath?

¿Cómo manejar espacios de nombres XML en consultas Java XPath?

Publicado el 2024-12-22
Navegar:962

How to Handle XML Namespaces in Java XPath Queries?

Manejo del espacio de nombres XML en consultas XPath de Java

En Java, al realizar consultas XML con XPath, los espacios de nombres pueden presentar un desafío. Cuando XML no contiene espacios de nombres, las consultas XPath pueden ser sencillas, pero la presencia de espacios de nombres introduce complejidades.

Caso 1: XML sin espacios de nombres

Para XML sin espacios de nombres, XPath Las consultas utilizan el espacio de nombres predeterminado, que en realidad no es un espacio de nombres. En este caso, consultas como "/workbook/sheets/sheet[1]" pueden recuperar elementos fácilmente.

Caso 2: XML con espacios de nombres

Sin embargo, XML con espacios de nombres como el siguiente añaden complejidad:



  
    
  

En tales casos, la expresión XPath "/workbook/sheets/sheet[1]" fallará porque los elementos están vinculados a "http://schemas.openxmlformats.org/spreadsheetml/ 2006/main".

Soluciones:

  1. Espacio de nombres Registro: El método preferido es registrar el espacio de nombres con un prefijo y usarlo en la consulta XPath, lo que facilita su lectura y mantenimiento.
  2. Coincidencia genérica con predicado: Sin registro de espacio de nombres, se puede utilizar una expresión XPath más compleja:
/*[local-name()='workbook' and namespace-uri()='http://schemas.openxmlformats.org/spreadsheetml/2006/main']
  /*[local-name()='sheets' and namespace-uri()='http://schemas.openxmlformats.org/spreadsheetml/2006/main']
  /*[local-name()='sheet' and namespace-uri()='http://schemas.openxmlformats.org/spreadsheetml/2006/main'][1]
  1. Coincidencia de nombre local: Una opción menos preferida es hacer coincidir solo el nombre local del elemento, ignorando el espacio de nombres, pero esto corre el riesgo de seleccionar elementos incorrectos si se mezclan vocabularios. existir.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3