3

Я пытаюсь получить значение узла XML с помощью функции FilterXML(), когда для элемента документа XML задано пространство имен.

Пример:

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


Мне удалось заставить FilterXML работать, удалив пространство имен следующим образом:

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


Есть ли способ получить значение узла XML без необходимости удаления пространства имен?

В настоящее время я использую LibreOffice Версия: 5.0.5.2

1 ответ1

0

Проигнорируйте пространство имен как это:

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

См. Https://stackoverflow.com/questions/5239685/xml-namespace-breaking-my-xpath.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .