|
Subject: RE: [xsl] Basic template matching issues - I think? From: An OldBloke <neil_owens@xxxxxxxxxxx> Date: Tue, 20 Nov 2012 17:55:39 +0000 |
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 |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] Basic template matching i, Ruud Grosmann | Thread | Re: [xsl] Basic template matching i, Imsieke, Gerrit, le- |
| Re: [xsl] analyze-string gotcha/rem, John Lumley | Date | Re: [xsl] Basic template matching i, Imsieke, Gerrit, le- |
| Month |