Użyłem XPath, aby wybrać węzeł z największą wartość całkowitą id przed użyciem tej kwerendy:Jak wybrać węzeł XML z najdłuższą wartością węzła #text węzła z XPath?
//somenode[not(@id <= preceding::somenode/@id) and not(@id <= following::somenode/@id)]
Miałem nadzieję, że mogę zrobić coś podobnego jak:
//entry[not(string-length(child::text()) <= string-length(preceding::entry/child::text())) and not(string-length(child::text()) <= string-length(following::entry/child::text()))]
ale zwraca kilka węzłów zamiast jednego.
Sample XML:
<xml>
<entry>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</entry>
<entry>Nam dignissim mi a massa mattis rutrum eu eget mauris.</entry>
<entry>Ut at diam a sem scelerisque pretium nec pulvinar purus.</entry>
<entry>Nunc in nisi nec dolor accumsan suscipit vel a quam.</entry>
<entry>Nunc suscipit lobortis arcu, nec adipiscing libero bibendum nec.</entry>
<entry>Aenean eget ipsum et nunc eleifend scelerisque.</entry>
<entry>In eu magna et diam volutpat molestie.</entry>
<entry>In volutpat luctus mi, eu laoreet orci dictum vel.</entry>
<entry>In mattis mi nec magna sodales eu bibendum felis aliquet.</entry>
<!-- etc for 800 more lines or so -->
<entry>Duis auctor felis id neque gravida ut auctor ipsum ullamcorper.</entry>
<entry>Sed vel tortor mauris, et aliquet tellus.</entry>
</xml>
Test XPath: http://chris.photobooks.com/xml/default.htm?state=1o
Myślę, że czegoś brakuje w tym drugim Query '[1]' na końcu może być? – travis
@travis: Dobry połów - jestem trochę nieostry tego wieczoru. Poprawione. –
+1 - * "(długość łańcucha (someNodeSet) jest stosowana tylko w pierwszym węźle tego zestawu węzłów)" * - Zrobiłem głupi błąd, a następnie zostałem zmylony przez zbyt mało przypadków testowych. To jest najlepsza odpowiedź. –