Manipulação de namespace XML em consultas Java XPath
Em Java, ao consultar XML com XPath, os namespaces podem representar um desafio. Quando XML não contém namespaces, as consultas XPath podem ser diretas, mas a presença de namespaces introduz complexidades.
Caso 1: XML sem namespaces
Para XML sem namespaces, XPath as consultas usam o namespace padrão, que efetivamente não é nenhum namespace. Nesse caso, consultas como "/workbook/sheets/sheet[1]" podem recuperar elementos facilmente.
Caso 2: XML com namespaces
No entanto, XML com namespaces como os seguintes adicionam complexidade:
Nesses casos, a expressão XPath "/workbook/sheets/sheet[1]" falhará porque os elementos estão vinculados ao "http://schemas.openxmlformats.org/spreadsheetml/ 2006/main" namespace.
Soluções:
/*[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]
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3