XPath: поиск узла атрибута (и только одного)
Что такое XPath, чтобы найти только ОДИН узел (какой бы ни), имеющий определенный атрибут (на самом деле я заинтересован в атрибуте, а не в узле). Например, в моем XML у меня есть несколько тегов, имеющих атрибут lang. Я знаю, что все они должны иметь одинаковую ценность. Я просто хочу получить любой из них.
Прямо сейчас я делаю это://*[1][@lang]/@lang
, но, кажется, не работает должным образом, по неизвестной причине.
Мои попытки привели меня к вещам, начиная от объединения всех значений @lang ('en en en en ...') и заканчивая ничем, иногда между тем, что я хочу, но не во всем XML.
EDIT :
На самом деле//@lang[1]
не может работать, потому что функцияposition()
вызывается перед тестом наlang
атрибут присутствия. Так что всегда требуется самый первый элемент, найденный в XML. В то время это работало лучше всего, потому что много-много раз атрибут lang находился в корневом элементе.