xsl-list
[Top] [All Lists]

Re: [xsl] XPath to check that a middle initial is either empty or is a letter followed by a period

2016-06-02 07:45:28
On 2 June 2016 at 13:33, Costello, Roger L. costello(_at_)mitre(_dot_)org <
xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> wrote:

Hi Folks,

I need an XPath expression that returns true if the <MI> element is empty
or, if it's not empty, it contains an uppercase letter of the English
alphabet followed by a period. For example, this <MI> element is good:

        <MI></MI>

As is this:

        <MI>H.</MI>

This XPath seems to work fine:

        if (MI eq '') then true()
        else if (exists(MI)) then matches(MI, '^[A-Z]\.$')
        else true()

Is there a better (shorter, simpler, more robust) XPath expression?

/Roger



you don't need the if tests, (you almost never need an if test returning
true()
just


MI='' or matches(string(MI), '^[A-Z]\.$')

or if you prefer

matches(string(MI), '^([A-Z]\.)?$')

David
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--
<Prev in Thread] Current Thread [Next in Thread>