Hi, This is the latest stable version:
spec name: 'XPath'; className: #ConfigurationOfXPath; versionString: #stable; repository: 'http://www.smalltalkhub.com/mc/PharoExtras/XPath/main'. Doru > On Sep 3, 2016, at 8:02 AM, stepharo <steph...@free.fr> wrote: > > Hi monty > > In which repository this maintained version is? > > PharoExtras? > > Is it the entry in the catalog? > > Stef > > > > Le 3/9/16 à 07:54, monty a écrit : >> Peter, you're using an ancient version with bugs that were fixed last fall. >> The newest version has more tests and correct behavior (checked against a >> reference implementation). Just download a new Moose image and you'll get >> it, along with an up to date XMLParser. (But if you insist on upgrading in >> your old image, run "XPath initialize" after) >> >> The binary syntax (there are keyword equivalents now) officially only >> supports XPath axis selectors like #/ and #// that take node test arguments >> where the node tests can be name tests like 'name,' '*', 'prefix:*' or type >> tests like 'text()', 'comment()', 'element(name)'. >> >> Filters aren't officially supported with that syntax, but you can always use >> select: on the result. ?? was removed, but I might add it back as shorthand. >> Filters are implemented differently now. >> >>> From: PBKResearch <pe...@pbkresearch.co.uk> >>> To: pharo-users@lists.pharo.org >>> Subject: [Pharo-users] Coding XPath as Smalltalk >>> >>> Hello >>> I am using XPath as a way of dissecting web pages, especially from >>> Wiktionary. Generally I get good results, but I could get useful extra >>> flexibility by using the binary Smalltalk operators to represent XPath, as >>> mentioned at the end of the class comment for XPath. However, the >>> description there is very terse, and I am having difficulty seeing how to >>> include more complex expressions, especially attribute tests. I have put >>> some of my XPath expressions through the XPath compiler and looked at the >>> output, and out of that I have found expressions which work but look very >>> clumsy. As an example, I have used the fragment: >>> document xPath: '//div[@id=''catlinks'']//li//text()' >>> and found that an equivalent is: >>> document //'div' ?? [:node :x :y|(node attributeAt: 'id') = >>> 'catlinks']//'li'//[:n| n isStringNode]]. >>> (I had to put two dummy arguments in the three-argument block to get it to >>> work.) >>> Is there a more extensive explanation of the use of these binary >>> operators? If not, could some kind person show me the most concise >>> translation of the sample XPath above, to give me a start in working out >>> more complex cases? >>> Many thanks for any help. >>> Peter Kenny >> > > -- www.tudorgirba.com www.feenk.com "What we can governs what we wish."