[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] XPath which tests that an element does not have mixed content?


Subject: Re: [xsl] XPath which tests that an element does not have mixed content?
From: David Carlisle <davidc@xxxxxxxxx>
Date: Thu, 03 Nov 2011 21:18:24 +0000

On 03/11/2011 18:44, Costello, Roger L. wrote:
Hi Folks,

Would you please recommend an XPath expression which ensures that the content of<author> is optional whitespace,<Person>, optional whitespace, and nothing else:

     <author>
         <Person>
             <name>Simon L. Peyton Jones</name>
         </Person>
     </author>

The result of the XPath expression is true if the content is as desired and false otherwise. The XPath should return true for the above example and false for the below example:

     <author>
        The person is:
         <Person>
             <name>Simon L. Peyton Jones</name>
         </Person>
     </author>


/Roger


most of your replies have used normalize-space for testing ws text nodes, but if you are using xpath from xslt (or other contexts where you can control the parse) an alternative is to throw away white space text children of author at XDM build time, which simplifies the expression greatly.

so

<xsl:strip-space elements="person"/>

then then can go

Person and not(node()[2])

David



--
google plus: https:/profiles.google.com/d.p.carlisle


Current Thread
Keywords