Subject: Re: [xsl] Selecting all elements which have an attribute that matches a given pattern From: Hermann Stamm-Wilbrandt <STAMMW@xxxxxxxxxx> Date: Wed, 18 Aug 2010 11:16:38 +0200 |
Stephen, "contains" seems to work for me ... (with xpath++ tool [1]). I used first example from [2]. Although XPath only provides "starts-with()" you can simulate "ends-with()" you seem to need by adding a forbidden character (eg. '<' for attribute values, see [3]). $ xpath++ "//xs:element[contains(@name,'born')]" schema1.xml ----------------------------------------------------------------------------- -- <xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="dateborn" type="xs:date"/> $ $ xpath++ "//xs:element[contains(concat(@name,'<'),'born<')]" schema1.xml ----------------------------------------------------------------------------- -- <xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="dateborn" type="xs:date"/> $ $ cat schema1.xml <?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="fname" type="xs:string"/> <xs:element name="lname" type="xs:string"/> <xs:element name="age" type="xs:nonNegativeInteger"/> <xs:element name="dateborn" type="xs:date"/> </xs:schema> $ [1] https://www.ibm.com/developerworks/forums/thread.jspa?messageID=14511881‘ 11881 [2] http://www.w3schools.com/schema/el_element.asp [3] http://www.w3.org/TR/REC-xml/#NT-AttValue Mit besten Gruessen / Best wishes, Hermann Stamm-Wilbrandt Developer, XML Compiler, L3 WebSphere DataPower SOA Appliances ---------------------------------------------------------------------- IBM Deutschland Research & Development GmbH Vorsitzender des Aufsichtsrats: Martin Jetter Geschaeftsfuehrung: Dirk Wittkopp Sitz der Gesellschaft: Boeblingen Registergericht: Amtsgericht Stuttgart, HRB 243294 From: "Etheridge, Stephen" <stephen.etheridge@xxxxxxxxxx> To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx> Date: 08/18/2010 09:58 AM Subject: [xsl] Selecting all elements which have an attribute that matches a given pattern Hi all and apologies if this has been dealt with previously, I searched the archives and FAQ but did not find anything that was close to my problem: I have an XML file (a schema in fact) that is many thousands of lines long and I need to edit it (i.e transform it). There are numerous elements of type <xs:element> all of which have a "name" attribute. Some of those name attributes end with the string "List", e.g. "MilkTypeList". For those elements, I want to apply a template to add an additional <xs:element>. I am having great trouble crafting the correct "match" for my <xsl:template>. I have tried contains() and matches() but my editor (Oxygen) states that those cannot be used as a pattern and my reading supports that. Can anyone help? Thanks Stephen Please help Logica to respect the environment by not printing this email / Pour contribuer comme Logica au respect de l'environnement, merci de ne pas imprimer ce mail / Bitte drucken Sie diese Nachricht nicht aus und helfen Sie so Logica dabei, die Umwelt zu sch|tzen. / Por favor ajude a Logica a respeitar o ambiente nao imprimindo este correio electronico. This e-mail and any attachment is for authorised use by the intended recipient(s) only. It may contain proprietary material, confidential information and/or be subject to legal privilege. It should not be copied, disclosed to, retained or used by, any other party. If you are not an intended recipient then please promptly delete this e-mail and any attachment and all copies and inform the sender. Thank you.
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Selecting all elements which , Etheridge, Stephen | Thread | Re: [xsl] Selecting all elements wh, David Carlisle |
[xsl] Selecting all elements which , Etheridge, Stephen | Date | Re: [xsl] Selecting all elements wh, David Carlisle |
Month |