[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: Basic template matching issues - I think?

Subject: RE: Basic template matching issues - I think?
From: An OldBloke <neil_owens@xxxxxxxxxxx>
Date: Tue, 20 Nov 2012 17:55:39 +0000
RE:  Basic template matching issues - I think?
Chaps

Apologies for my myopicness earlier.

I've made some progress but am still seeing a RegEx error generated.  The
RegEx itself works in test websites(minus the double curly brackets) but gives
the following error:-

C:\>java -jar saxon9he.jar -o Result.xml text.xml regextime.xslt
Error at xsl:analyze-string on line 13 of regextime.xslt:
  XTDE1140: Error in regular expression: net.sf.saxon.trans.XPathException:
Error at
  character 8 in regular expression "(\d{2})\/(\d{2})\/(\d{4}) (\d{...":
invalid
 escape sequence
Failed to compile stylesheet. 1 error detected.



I'm looking to re-format the time attribute to a datetime format - from
'12/11/2012 6:12:04 AM' to '2012-22-12T06:12:04' in this case.  Unless anyone
knows a better way of re-formatting date/times? - I'm open to ideas.


XML:
<Log Device="SERVER1">
<myCommand Command="test" Time="12/11/2012 6: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:
<?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">
    <myCommand>
        <xsl:element name="Command"><xsl:value-of
select="@Command"/></xsl:element>
        <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',
                                 string(format-number(number(regex-group(4)),
'00')), ':',
                                 string(number(regex-group(5))), ':',
                                 string(number(regex-group(6))))" />
            </xsl:matching-substring>
        </xsl:analyze-string>
        <xsl:element name="Port"><xsl:value-of select="@Port"/></xsl:element>
    </myCommand>
</xsl:template>
</xsl:stylesheet>

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.