Urquhart, Russ wrote:
>  
> we have xml like the following:
>  
> <CrossReference href="#SWCU057-3223"/>
> shows the AV connector, and
> <CrossReference href="#SWCU057-3427"/>
>  describes the signal for the AV connector (see the  
> <Emphasis type="italic"> AV HW IF Specification For Vendors, version
> 3.0</Emphasis>).
> </Para>
> <Title Target="SWCU057-3223" numeration="decimal" role="Figure">AV
> Connector Pin Layout</Title>
>  
> In the editor via the css file, i want the CrossReference to show as a
> link and have the title of whats pointed to by the href attribute, minus
> the initial '#'.
>  
> So in my css i have:
>  
> CrossReference {
>  color: blue;
>  text-decoration: underline;
>      content: icon(left-link) xpath("*/tit...@target =
> substring-after(@href, '#')]  ") ;
>  
>     vertical-align: text-top;
>     color: navy;
> }
>  
> And i dont get anything. However, when i put, for the content line:
>  
>    content: icon(left-link) xpath("substring-after(@href, '#")")
>  
> I at least get the correct Target value.
>  
> I'm sure this is a newbie Xpath question, but any help is GREATLY
> appreciated!
>  

In the context of a CrossReference element, "*/Title" means: the Title
elements which are the grand children of this CrossReference element. I
don't think that this is what you want to specify.

Instead try "//Title" which means: any Title element which is found in
the document:

---
xpath("//tit...@target = substring-after(current()/@href, '#')]")
---

Also note the "current()/@href" subexpression. Without "current()/", the
expression means: any Title having a Target attribute equals to the
fragment of its href attribute.

References:

* XML Path Language (XPath) Version 1.0 -- http://www.w3.org/TR/xpath

* XSL Transformations (XSLT) Version 1.0, Miscellaneous Additional
Functions -- http://www.w3.org/TR/xslt#misc-func, for current().

* XMLmind XML Editor - Commands, XPath functions --
http://www.xmlmind.com/xmleditor/_distrib/doc/commands/xpathfunc.html



Reply via email to