xslt leestekens verwijderen

Kan iemand mij vertellen waarom de volgende regel code geen legitieme manier is om punten en komma's voor het tekstknooppunt van het alinea-element te verwijderen met behulp van xslt 1.0? Dit is de sjabloon die ik momenteel heb:


    

Mijn editor geeft me momenteel een foutmelding wanneer ik dit probeer te doen.

2

2 antwoord


In XSLT 1.0 and 2.0 the expression in the select attribute of xsl:apply-templates must evaluate to a node-set.

Het kenmerk selecteren van de bovenstaande instructie is syntactisch ongeldig in XPath 1.0 omdat het in XPath 1.0 niet is toegestaan ​​om een ​​functieaanroep als RHS van de operator / te hebben (bedankt naar @MichaelKay om dit aan te wijzen) en in XPath 2.0 evalueert het naar een string, niet een node-set - en dit is de oorzaak van de fout.

You want to do something like this:


 

and replace the quoted above instruction with:

 
2
toegevoegd
Ha - dat is een heel slimme oplossing. Het lijkt te werken - maar ik veronderstel dat als

kinderen heeft met interpunctie, ik aparte sjablonen moet uitvoeren om interpunctie ook te verwijderen - zeg voor een die een kind van

is, dat wil zeggen < code> tei: citaat//tekst()

toegevoegd de auteur Jeff, de bron
@MichaelKay: Bedankt voor de goede observatie - ik heb deze extra fout toegevoegd aan mijn uitleg.
toegevoegd de auteur Dimitre Novatchev, de bron
@Jeff: Eigenlijk moet je dat niet doen. tei: p//text() komt overeen met alle tekstknooppunten die afstammen van tei:/p .
toegevoegd de auteur Dimitre Novatchev, de bron
Bovendien kunt u in XSLT 1.0 geen functieaanroep uitvoeren op de rhs van de "/" -operator.
toegevoegd de auteur Michael Kay, de bron

gebruik dit

0
toegevoegd
Ik dacht aan deze roue, maar ik weet niet zeker of dit me zal geven wat ik wil. Er zijn veel elementen voor kinderen bij de p-tag - dus ik wil ervoor zorgen dat je ook sjablonen toepast op alle kinderen van de p. Als alleen de waarde van P wordt geselecteerd, weet ik niet zeker welke andere meer specifieke sjablonen worden verwerkt.
toegevoegd de auteur Jeff, de bron