xsl-list
[Top] [All Lists]

Re: [xsl] Basic template matching issues - I think?

2012-11-20 06:38:14
.......after you have fixed everything else that has been mentioned.

On Tue, Nov 20, 2012 at 12:34 PM, Ihe Onwuka 
<ihe(_dot_)onwuka(_at_)gmail(_dot_)com> wrote:
I think you have fallen foul of this.

http://www.biglist.com/lists/lists.mulberrytech.com/xsl-list/archives/201211/msg00133.html

On Tue, Nov 20, 2012 at 12:28 PM, An OldBloke 
<neil_owens(_at_)hotmail(_dot_)com> wrote:

I'm getting the following error trying to integrate regex into a transform 
that previously used concat and string searching as it's much more flexible.

The error is:-

C:\>java -jar saxon9he.jar -o Result.xml text.xml regextime.xslt

Error on line 22 column 5 of regextime.xslt:
  SXXP0003: Error reported by XML parser: The value of attribute "select" 
associated with an
  element type "null" must not contain the '<' character.
Failed to compile stylesheet. 1 error detected.

I just can't see what I've done wrong, so am hoping you kind folks can put 
me on the (x)path again.

XML file:
<Log Device="SERVER1">
<myCommand Command="test" Time="12/11/2012 11:12:04 AM" Port="9999" 
IP="1.1.1.1">
<Struct>
<OUTID>SERVER2</OUTID>
<INID>SERVER3</INID>
<test>
<item>2</item>
<GUID>21EC2020-3AEA-1069-A2DD-08002B30309D</GUID>
<status>OK</status>
</test>
</Struct>
</myCommand>
</Log>


xsl Transform:
<?xml version="1.0"?>
<xsl:stylesheet version="2.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
<xsl:output method="xml" indent="yes" name="TextFormat" 
omit-xml-declaration="yes"/>

<xsl:template match="Log">
    <xsl:apply-templates select="myCommand"/>
</xsl:template>

<xsl:template match="myCommand">
    <nomCommand>
        <xsl:element name="Command"><xsl:value-of 
select="@Command"/></xsl:element>
        <xsl:template match="Time">
        <xsl:analyze-string select="@Time" regex="(\d{2})\/(\d{2})\/(\d{4}) 
(\d{1,2}):(\d{2}):(\d{2})">
            <xsl:matching-substring>
                <xsl:value-of select="concat(string(number(regex-group(3))), 
'-',
                                 string(number(regex-group(2))), '-',
                                 string(number(regex-group(1))), 'T',
                                 format-number(regex-group(4), '00'), ':',
                                 regex-group(5), ':',
                                 regex-group(6) />
            </xsl:matching-substring>
        </xsl:analyze-string>
        </xsl:Template>
        <xsl:element name="Port"><xsl:value-of select="@Port"/></xsl:element>
    </nomCommand>
</xsl:template>
</xsl:stylesheet>



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--