xsl-list
[Top] [All Lists]

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

2011-11-03 14:28:30
count() is an expensive operation, in this case, Brandon's XML suggests that 
well formed instance documents should only have one Person element under the 
author element with the exception of instance documents having more. Many times 
the expression count() = 1 can be changed to not(exists(*[2])) since the second 
element will always exist for >1 elements without having to count *all* the 
elements then compare that amount against the value 1.

Andy.

-----Original Message-----
From: Brandon Ibach 
[mailto:brandon(_dot_)ibach(_at_)single-sourcing(_dot_)com]
Sent: Thursday, November 03, 2011 15:08
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: Re: [xsl] XPath which tests that an element does not have
mixed content?

I may be misinterpreting your requirement, but based on my initial
read, I'd go with something like the following, which should work with
any version of XPath/XSLT.  It is written to be evaluated in the
context of <author>.

count(Person) = 1 and not(text()[normalize-space(.)])

-Brandon :)


On Thu, Nov 3, 2011 at 2:44 PM, Costello, Roger L. 
<costello(_at_)mitre(_dot_)org>
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

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--




--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--