В TinyXPath, как запросить данные по индексируемым по содержанию элемента

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

XML выглядит так

<Platform>
  <LinkData>
    <Plan>
      <Label>A</Label>
        <Settings>
           <SomeSetting1>ENABLED</SomeSetting1>
           <SomeSetting2>ENABLED</SomeSetting2>
        </Settings>
    </Plan>
    <Plan>
      <Label>B</Label>
        <Settings>
           <SomeSetting1>ENABLED</SomeSetting1>
           <SomeSetting2>DISABLED</SomeSetting2>
        </Settings>
    </Plan>
  </LinkData>
</Platform>

Учитывая вышеприведенную структуру, которой я не могу управлять, мне нужно иметь возможность создавать выражения XPath для TinyXPath. Проще говоря, TinyXPath должен возвращать значения в полях SomeSetting1/2, заданных, когда правильные значения дочерних меток совпадают (разрешить в true), чтобы тестовое приложение могло их использовать.

Я пробовал следующее, но борьба со способом индексируется с использованием дочернего элемента (обычно я ожидаю использования атрибута. Вот моя попытка, которая не возвращает результат (например, ENABLED/DISABLED):-

Platform/LinkData/Plan[child::Label='A']/Settings/SomeSetting1/text()
Platform/LinkData/Plan[child::Label='A']/Settings/SomeSetting2/text()
Platform/LinkData/Plan[child::Label='B']/Settings/SomeSetting1/text()
Platform/LinkData/Plan[child::Label='B']/Settings/SomeSetting2/text()

Буду признателен за любую дополнительную помощь от гуру TinyXPath - спасибо!

1 ответ

Решение

Этот xpath вернет то, что вы ищете с данным XML:

//Settings/child::node()/text()

Этот xpath также добавит проверку меток и группы по concat. |:

//LinkData/Plan[Label/text()='A']/Settings/child::node()/text() | //LinkData/Plan[Label/text()='B']/Settings/child::node()/text()

И этот объединяет их обоих внутри проверки метки:

//LinkData/Plan[Label/text()='A' or Label/text()='B']/Settings/child::node()/text()

Надеюсь это поможет!

Другие вопросы по тегам