Это XPath,
//FILE[header/author="X" and text/type/ref/@year="1999"]
выберет FILE
элементов в любом месте документа, которые соответствуют условиям в предикате.
Используйте or
вместо and
, если вы хотите дизъюнктивный предикат. (Обратите внимание, что |
используется для объединения наборов узлов.) Комбинации and
, or
и not()
могут использоваться для выражения полных логических выражений в предикате.
Если структура под FILE
сама изменяется, вы можете использовать .//
, чтобы «пропустить» варианты. Например,
//FILE[.//author="X" and .//ref/@year="1999"]
игнорирует путь между FILE
и каждым из author
и ref/@year
.