Como se usa a função LibreOffice FILTERXML em documentos XML com namespaces?

3

Eu estou lutando para obter o valor de um nó XML usando a função FilterXML () quando o elemento de documento do documento XML tem um namespace especificado.

Exemplo:

<?xml version="1.0" encoding="UTF-8"?>
<DocumentElement xmlns="XMLSchemaDefinition.xsd">
    <Field>
        <Value>100</Value>
    </Field>
</DocumentElement>
= FILTERXML(A1, "/Document/Element/Value[1]")


Eu consegui fazer com que o FilterXML funcionasse removendo o namespace da seguinte maneira:

= FILTERXML(SUBSTITUTE(A1, "<DocumentElement xmlns=""XMLSchemaDefinition.xsd"">", "<DocumentElement>"), "/DocumentElement/Field/Value[1]")


Existe uma maneira de obter o valor do nó XML sem ter que remover o (s) namespace (s)?

Atualmente estou usando o LibreOffice Versão: 5.0.5.2

    
por Osmund Francis 04.03.2016 / 17:50

1 resposta

0

Ignore o namespace assim:

= FILTERXML(A1, "/*[name()='DocumentElement']/*[name()='Field']/*[name()='Value'][1]")

Veja o link .

    
por 05.03.2016 / 03:37