Subject: RE: [xsl] XPath: better way to check for text nodes that aren't descendents of x or y nodes? From: "Michael Kay" <mhk@xxxxxxxxx> Date: Wed, 14 May 2003 19:14:12 +0100 |
> My requirement is to check for validity of certain XML data > as follows: all text() nodes descended from . must be > descendants of either llcd:vernac or llcd:gloss. (By the way, > if it helps, the llcd:vernac or llcd:gloss will be > descendants of . too, not ancestors.) > > My current test is > test=".//text()[not(ancestor::llcd:vernac | ancestor::llcd:gloss)]" > > If this test is true, the data is invalid. > > But is there a more efficient way to do this? You could try count(.//text()) = count(.//llcd:vernac//text() | .//llcd:glos//text()) Michael Kay > Something that checks for llcd:vernac|llcd:gloss along the > way, instead of going down the descendant axis and then back > up the ancestor axis (twice)? Something along the lines of > test="./(not(llcd:vernac|llcd:gloss)/)*/text()" > where * means "0 or more times". > > I guess I could do > test="count(.//text()) > > count(.//llcd:vernac//text() | .//llcd:gloss//text())" > but I'm not sure that's any more efficient. > > This is not a big deal, just wanting to be as efficient as > reasonably possible. > > Lars > > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] XPath: better way to check fo, Lars Huttar | Thread | [xsl] Re: XPath: better way to chec, Dimitre Novatchev |
RE: [xsl] XSLT - base URL for relat, Michael Kay | Date | RE: [xsl] Using or ignoring Types i, Michael Kay |
Month |