How to select CDATA text in functions for XML parser rules?

Hello,

Does anybody know how selecting CDATA section text in the starts-with() function works when writing XPath-based parser rules?

I've been trying to test this using the following XML and I'm having no luck:

I tried writing a parser rule that selects <value> elements if the <key> element starts with the letter 'a'. I wrote the following XPath query as a test:

//group[starts-with(key,'a')]/value

This should work - in fact, every other XPath processor I've tried here returns the correct nodeset. For example, here's XPath Visualizer:

But when used in an XML parser rule, the query returns absolutely nothing.

Here's the parser rule:

Here's the result - there are no segments:

I've also tried selecting the text node on <key> elements instead:

//group[starts-with(key/text(),'a')]/value

//group[key[starts-with(text(),'a')]]/value

Neither of these work either.

Is this a limitation of the starts-with() function in Studio? Or does anybody know how Studio expects these types of nodes to be selected? I'm running out of ideas here!

Thanks very much.

Top Replies