У меня есть выражение Python XML XPath ancestor-or-self::*[@foo]/@foo
, и мне нужно изменить его, чтобы получить атрибут @foo
, если он существует, иначе получить атрибут @bar
.
Я пытался использовать оператор or
, аналогичный условию [@foo or @bar]
, но получил ошибку выражения.
Для правильного XPath_Prefix
этот XPath,
XPath_Prefix
/@*[name()='foo' or name()='bar'][1]
выберет атрибут foo
, если он доступен; в противном случае атрибут bar
.
Задавая вопрос XPath, вам необходимо предоставить минимальный воспроизводимый пример: (1) Входной XML. (2) Ваша логика и выражение XPath, которое пытается ее реализовать. (3) Желаемый результат на основе № 1 выше. (4) Процессор XPath и его соответствие стандартам XPath: 1.0, 2.0, 3.0, 3.1 или 4.0.