Subject: [xsl] How to do macro substitution in XPath? From: "Roger L Costello costello@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Sat, 2 Dec 2023 15:35:56 -0000 |
Hi Folks, I am converting prose like this: If the title = "Path to Power" and the author = "Robert A. Caro" (Lyndon Baines Johnson (LBJ)), then process LBJ as follows action 1 If the title = "Power Broker" and the author = "Robert A. Caro" (Robert Moses (RM)), then process RM as follows action 2 Neither LBJ nor RM action 3 I need the XPath to be as like the prose as possible. Suppose the XPath will operate on XML documents like this: <Book> <Title>Path to Power</Title> <Author>Robert A. Caro</Author> </Book> Below is one approach to writing the XPath. See the XPath in the xsl:value-of element. Notice the use of XML ENTITIES. The advantage of that approach is the XPath looks like the prose. The disadvantage with that approach is that ENTITIES are not XPath. I need to stick with pure XPath. What XPath do you recommend? <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE xsl:stylesheet[ <!ENTITY LBJ "((/Book/Title eq 'Path to Power') and (/Book/Author eq 'Robert A. Caro'))"> <!ENTITY RM "((/Book/Title eq 'Power Broker') and (/Book/Author eq 'Robert A. Caro'))"> ]> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="3.0"> <xsl:template match="/"> <xsl:value-of select=" if &LBJ; then 'action 1' else if &RM; then 'action 2' else if (not((&LBJ;) or (&RM;))) then 'action 3' else 'Error' "/> </xsl:template> </xsl:stylesheet>
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] XSL-List Guidelines, B Tommie Usdin btusd | Thread | Re: [xsl] How to do macro substitut, Martin Honnen martin |
[xsl] XSL-List Guidelines, B Tommie Usdin btusd | Date | Re: [xsl] How to do macro substitut, Martin Honnen martin |
Month |