XPath: znalezienie węzła atrybutu (i tylko jednego)
Co to jest XPath, aby znaleźć tylko JEDEN węzeł (którykolwiek) mający określony atrybut (w rzeczywistości interesuje mnie atrybut, a nie węzeł). Na przykład w moim XML mam kilka tagów mających atrybut lang. Wiem, że wszystkie z nich muszą mieć tę samą wartość. Po prostu chcę je mieć.
Teraz robię to://*[1][@lang]/@lang
, ale wydaje się, że nie działa poprawnie z nieznanego powodu.
Moje próby doprowadziły mnie do rzeczy, począwszy od konkatenacji wszystkich wartości @lang ('en en en en ...') do niczego, czasem między tym, co chcę, ale nie na całym XML.
EDYTOWAĆ :
Tak właściwie//@lang[1]
nie może działać, ponieważ funkcjaposition()
jest wywoływany przed testem na alang
obecność atrybutu. Więc zawsze bierze pierwszy element znaleziony w XML. W tym czasie działało najlepiej, ponieważ wiele razy atrybut lang był na elemencie root.