Получить узел для XML с пространством имен, используя XPath - PullRequest
0 голосов
/ 22 апреля 2019

Я пытаюсь выбрать узел на основе значения в элементе XML-файла, который содержит пространство имен.

Я использую команду Automation Anywhere Get XML Node, которая ограничивает меня использованием однострочного оператора XPath.

Это пример XML-файла

<IMPORT xmlns="urn:Import">
    <STUFF>
        <STUFF_TYPE>
            <STUFF_TYPE_KEY>1</STUFF_TYPE_KEY>
        </STUFF_TYPE>
        <WALMART>
            <STORE>
                <STORE_ID TYPE="SC" ID="SC-12345">WM000001</STORE_ID>
                <STORE_STATUS>O</STORE_STATUS>
            </STORE>
        </WALMART> 
    </STUFF>
</IMPORT>

Я хотел бы выбрать значение STORE_STATUS, где STORE_ID = WM000001

Прямо сейчас, это не находит узел.

Ответы [ 2 ]

0 голосов
/ 22 апреля 2019

Это сработало:

//*[local-name() = 'STORE']/*[local-name() = 'STORE_ID' and text() = 'WM000001']/following-sibling::*[local-name() = 'STORE_STATUS']
0 голосов
/ 22 апреля 2019

Вы можете использовать независимое от пространства имен выражение, такое как

//*[local-name() = 'STORE']/*[local-name() = 'STORE_ID' and text() = 'WM000001']/../*[local-name() = 'STORE_STATUS']

Выбирает элемент STORE_STATUS из всех элементов STORE с STORE_ID дочерними элементами, которые имеют значение WM000001. Если вам нужно только значение, добавьте /text() в конец выражения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...