XPath в приложении logi c для извлечения значения в зависимости от его типа - PullRequest
1 голос
/ 28 января 2020

Я использую приложение c для анализа и реконструкции входящего XML. Проблема, с которой я сталкиваюсь, заключается в том, что часть XML не всегда находится в одном и том же порядке с одинаковым количеством подразделов. Так что мне интересно, можно ли было вернуть значение в зависимости от типа? Т.е. в этом примере я хочу вернуть значение 2, где 2 не всегда является вторым контекстом.

 <ContextCollection>
  <Context>
    <Type>test1</Type>
    <Value>1</Value>
  </Context>
  <Context>
    <Type>test2</Type>
    <Value>2</Value>
  </Context>
  <Context>
    <Type>test3</Type>
    <Value>3</Value>
  </Context>

Я успешно использовал следующее выражение xpath(xml(variables('XMLStripNameSpace')),'string(/*[name()="ContextCollection"]/*[name()="Context"][2]/*[name()="Value"])')

но это, очевидно, не работает, когда test2 является третьим Context.

1 Ответ

1 голос
/ 28 января 2020

Этот XPath,

//Context[Type = "test2"]/Value

выберет все Value дочерние элементы Context элементов Type test2.

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