Folgende xpaths liefern die Antworten auf die gestellten Fragen:
count(/topicmap/topics/topic)
count(/topicmap/relations/relation)
count(/topicmap/topics/topic/desc)
count(/topicmap/relations/relation/roleref/topicref)
count(/topicmap/relations/relation/roleref/topicref[@TID='xpath'])
count(/topicmap/relations/relation/roleref/topicref[@TID='xpath']/../../roleref/topicref[not(@TID='xpath')])
count(/topicmap/topics/topic[starts-with(name,'X')])
count(/topicmap/locators/locator/uri[substring(@href,string-length(@href)-4)='.html'])
count(/topicmap/topics/topic/desc/topicref[@TID='xml'])
count(/topicmap/topics/topic/desc/topicref[@TID='xml']/../..)
count(/topicmap/topics/topic/desc/topicref[@TID='xml'][following-sibling::topicref[@TID='xml']]/../..)
count(/topicmap/topics/topic/desc/topicref) div count(/topicmap/topics/topic/desc)
count(/topicmap/relations/relation[@RelID='standardized']/roleref[@RolID='standardizationbody']/topicref[@TID='w3c'])
Bei der Lösung wurde ausschliesslich der Children-Mechanismus verwendet. Unter Verwendung des Descendant-Mechanismus ergeben sich wesentlich kürzere xpaths. Ausserdem gibt es natürlich eine Vielzahl verschiedener korrekter Lösungen. Diese unterscheiden sich jedoch meist nur in kleineren Details, die grundlegende Idee aller korrekten xpaths ist die gleiche.
please send comments to xml-vl@dret.net last modification on Tuesday, 02-May-2006 17:28:59 CEST |