Hi, Yes, exactly. You get a qualified DOM with a hierarchy that you can afterwards visit.
Only the current implementation only works only with the XMLDOMParser. It does not work with SAX. Cheers, Doru > On Mar 13, 2016, at 12:55 PM, stepharo <steph...@free.fr> wrote: > > I have the impression that I should also look at > > XMLPluggableElementFactory new handleElement: 'NOM' withClass: AAAName. > > Because it looks like that I inject my nodes inside the dom > > Am I correct? > > > Le 12/3/16 21:59, Tudor Girba a écrit : >> Hi, >> >> My original work only survived for the XMLDOMParser. See this example: >> http://ws.stfx.eu/NK2WLSW99X10 >> (paste this in Spotter :)) >> >> For an XMLDOMParser, you can say that you want to instantiate a node in the >> DOM with an custom instance. For example, here I instantiate <NOM> with >> AAAName: >> >> <Mail Attachment.png> >> >> You are looking for something a bit different. In a way you want to >> associate the triggering of a specific handler when some XPath like >> expression is being matched for the current element. I think something like >> this should go in the main implementation. >> >> Cheers, >> Doru >> >> >> >>> On Mar 12, 2016, at 9:33 AM, stepharo <steph...@free.fr> wrote: >>> >>> This is more complex than that. >>> Because I would like to have a visitor generated from the token I give. >>> >>> And this >>> start >>> character >>> end >>> >>> does not really help me. >>> >>> Because in SAXHandler I have >>> start >>> where I should store the properties >>> same in characters: >>> to store the name >>> end >>> where I should invoke the visitor >>> >>> Now it means that I should only store the information for the tag I want. >>> Does anybody already did that and publish it? >>> I know doru did that in the past. >>> I will try. >>> >>> Stef >>> >>> >>> >>> Le 11/3/16 14:17, Blondeau Vincent a écrit : >>>> Hi, >>>> >>>> The qualified name in function startElement: aQualifiedName attributes: >>>> aDictionary, will be FILMS and after FILM and after TITRE,...etc... >>>> So, you have to tell to your shouldVisit: method to accept TITRE too and >>>> get in and after you should implement characters: to get the content on >>>> the tag. >>>> >>>> Vincent >>>> >>>>> -----Message d'origine----- >>>>> De : Pharo-users [mailto:pharo-users-boun...@lists.pharo.org] De la part >>>>> de >>>>> stepharo >>>>> Envoyé : vendredi 11 mars 2016 14:04 >>>>> À : Any question about pharo is welcome >>>>> Objet : [Pharo-users] How to access XML tag name? >>>>> >>>>> Hi >>>>> >>>>> Yesterday I started to hack a smart SAX handler. The idea is that I want >>>>> to just >>>>> specify the tags I want to visit and the SAX handler should invoke >>>>> (generated) >>>>> visit methods. Like that I can easily get visitors on XML domain. >>>>> >>>>> Here is an example of what I did. >>>>> >>>>> | h | >>>>> h := SmartSAXHandler new >>>>> visitor: (MyFilmVisitor new visitTags: #(FILM ROLE)); >>>>> on: FileSystem workingDirectory / 'FILMS.XML'. >>>>> h parseDocument. >>>>> ^ h >>>>> >>>>> >>>>> >>>>> SmartSAXHAndler >> startElement: aQualifiedName attributes: aDictionary >>>>> >>>>> (visitor shouldVisit: aQualifiedName) >>>>> ifTrue: [ >>>>> visitor >>>>> perform: (visitor createdVisitSelector: >>>>> aQualifiedName) >>>>> with: aQualifiedName >>>>> with: aDictionary >>>>> ] >>>>> >>>>> >>>>> Object subclass: #GenericTagSAXVisitor >>>>> instanceVariableNames: 'visitTag visitTags' >>>>> classVariableNames: '' >>>>> category: 'SmartXMLHandler' >>>>> >>>>> >>>>> GenericTagSAXVisitor>>visitTags: aCollection >>>>> "set the tags that will lead to a call to a visitTag:with: method in >>>>> the visitor" >>>>> >>>>> visitTags := aCollection collect: [ :each | each asLowercase ]. >>>>> self createVisitMethods. >>>>> >>>>> and in a subclass the visit* methods automatically generated >>>>> >>>>> >>>>> Now I could not get when I have a <TITRE>Vertigo</TITRE> where I can get >>>>> the >>>>> Vertigo information. >>>>> I redefined several methods of SAXhandler but without success. >>>>> >>>>> >>>>> <?xml version="1.0" encoding="iso-8859-1"?> >>>>> <FILMS> >>>>> <FILM annee="1958"> >>>>> <TITRE>Vertigo</TITRE> >>>>> <GENRE>Drame</GENRE> >>>>> <PAYS>USA</PAYS> >>>>> <MES idref="3"/> >>>>> <ROLES> >>>>> <ROLE> >>>>> <PRENOM>James</PRENOM> >>>>> <NOM>Stewart</NOM> >>>>> <INTITULE>John Ferguson</INTITULE> >>>>> </ROLE> >>>>> <ROLE> >>>>> <PRENOM>Kim</PRENOM> >>>>> <NOM>Novak</NOM> >>>>> <INTITULE>Madeleine Elster</INTITULE> >>>>> </ROLE> >>>>> </ROLES> >>>>> <RESUME>Scottie Ferguson, ancien inspecteur de police, est sujet >>>>> au vertige depuis qu'il a vu mourir son >>>>> collegue. Elster, son ami, le charge de surveiller sa femme, >>>>> Madeleine, ayant des tendances >>>>> suicidaires. Amoureux de la jeune femme Scottie ne remarque pas le >>>>> piege qui se trame autour >>>>> de lui et dont il va etre la victime... </RESUME> >>>>> </FILM> >>>> >>>> !!!************************************************************************************* >>>> "Ce message et les pièces jointes sont confidentiels et réservés à l'usage >>>> exclusif de ses destinataires. Il peut également être protégé par le >>>> secret professionnel. Si vous recevez ce message par erreur, merci d'en >>>> avertir immédiatement l'expéditeur et de le détruire. L'intégrité du >>>> message ne pouvant être assurée sur Internet, la responsabilité de >>>> Worldline ne pourra être recherchée quant au contenu de ce message. Bien >>>> que les meilleurs efforts soient faits pour maintenir cette transmission >>>> exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard >>>> et sa responsabilité ne saurait être recherchée pour tout dommage >>>> résultant d'un virus transmis. >>>> >>>> This e-mail and the documents attached are confidential and intended >>>> solely for the addressee; it may also be privileged. If you receive this >>>> e-mail in error, please notify the sender immediately and destroy it. As >>>> its integrity cannot be secured on the Internet, the Worldline liability >>>> cannot be triggered for the message content. Although the sender >>>> endeavours to maintain a computer virus-free network, the sender does not >>>> warrant that this transmission is virus-free and will not be liable for >>>> any damages resulting from any virus transmitted.!!!" >>> >>> >> >> -- >> www.tudorgirba.com >> www.feenk.com >> >> "We can create beautiful models in a vacuum. >> But, to get them effective we have to deal with the inconvenience of >> reality." >> > -- www.tudorgirba.com www.feenk.com "Reasonable is what we are accustomed with."