xslt - converting XML to CSV using xsltproc -


I have a lot of this kind of file:

  & lt ;? Xml version = "1.0" encoding = "UTF-8"? & Gt; & Lt; Statistics & gt; & Lt; TP ID = "1P3" & gt; & Lt; Value & gt; & Lt; DATETIME & gt; 2014-04-30T10: 14: 00Z & lt; / DATETIME & gt; & Lt; EE & gt; 4.820 & lt; / E & gt; & Lt; Status & gt; 0 & lt; / Status & gt; & Lt; / Value & gt; & Lt; Value & gt; & Lt; DATETIME & gt; 2014-04-30T10: 29: 00Z & lt; / DATETIME & gt; & Lt; EE & gt; 4.825 & lt; / E & gt; & Lt; Status & gt; 0 & lt; / Status & gt; & Lt; / Value & gt; & Lt; Value & gt; & Lt; DATETIME & gt; 2014-04-30T10: 44: 00Z & lt; / DATETIME & gt; & Lt; EE & gt; 4.831 & lt; / E & gt; & Lt; Status & gt; 0 & lt; / Status & gt; & Lt; / Value & gt; & Lt; / T.P. & Gt; & Lt; TP ID = "4P2" & gt; & Lt; Value & gt; & Lt; DATETIME & gt; 2014-04-30T10: 14: 02Z & lt; / DATETIME & gt; & Lt; EE & gt; 556.006 & lt; / E & gt; & Lt; Status & gt; 0 & lt; / Status & gt; & Lt; / Value & gt; & Lt; Value & gt; & Lt; DATETIME & gt; 2014-04-30T10: 29: 01Z & lt; / DATETIME & gt; & Lt; EE & gt; 556.550 & lt; / E & gt; & Lt; Status & gt; 0 & lt; / Status & gt; & Lt; / Value & gt; & Lt; Value & gt; & Lt; DATETIME & gt; 2014-04-30T10: 44: 01Z & lt; / DATETIME & gt; & Lt; EE & gt; 557.097 & lt; / E & gt; & Lt; Status & gt; 0 & lt; / Status & gt; & Lt; / Value & gt; & Lt; / T.P. & Gt; & Lt; ID & gt; WSE_KA-CCE & lt; / Id & gt; & Lt; S.N. & Gt; 140252702523 & lt; / SN & Gt; & Lt; IP & gt; 37.80.230.61 & lt; / IP & gt; & Lt; / Stats & gt;  

I need to convert them to CSV, so I have created an XSL template but can not do the desired job:

   & Lt; Xsl: template match = "/" & gt; & Lt; Xsl: text & gt; Zllymummer, Zeitompell, Zahlerland & lt; / Xsl: text & gt; & Lt; Xsl: each-select = "// tp" & gt; & Lt; Xsl: Select the value = "@ id" />, & lt; / Xsl: each-every & gt; & Lt; Xsl: each selection = "// tp / value" & gt; & Lt; Xsl: Select the value = "DATETIME" />, & lt; Xsl: Select Value = "EE" /> & Lt; Xsl: text & gt; & Lt; / XSL: text & gt; & Lt; / XSL: for-each & gt; & Lt; / XSL: Templates & gt; & Lt; / XSL: stylesheet & gt;  

What do I want to see:

  Zallenmemar, Zystemom Pell, ZahlerPant 1 P-3014-04-30 T10: 14: 00Z, 4.820 1 P-301014- 04-30T10: 29: 00Z, 4.825 1P-3,2014-04-30T10: 44: 00Z, 4.831 4P 02,2014-04-30T10: 14: 02Z , 556.006 4p 02,2014-04-30T10: 29: 01Z, 556.550 4P2, 2014-04-30T10: 44: 01Z, 557.097  

But let me What to get:

  $ 212 $ xsltproc data_XML2CSV.xml Data -3.xml Zellenmemar, ZystemTapel, Sheller 1p3, 4p2, 2014-04-30T10: 14: 00Z, 4.820 2014-04-30T10: 29: 00Z, 4.825 2014-04-30T10: 44: 00Z, 4.831 2014-04-30T10: 14: 02Z, 556.006 2014-04-30T10: 29: 01Z, 556.55 0 2014-04-30T10: 44: 01Z, 557.097  

This is my first XL experience and I am losing a bit, I know I am almost there but can not see it .. .

I think you want: / P>

  & lt; ? XML version = "1.0" encoding = "UTF-8"? & Gt; & Lt; Xsl: stylesheet version = "1.0" xmlns: xsl = "http://www.w3.org/1999/XSL/transform" & gt; & Lt; Xsl: output method = "text" encoding = "UTF-8" /> & Lt; Xsl: template match = "/" & gt; & Lt; XSL: Text & gt; Zählernummer, Zeitstempel, Zählerstand & lt; / XSL: text & gt; & Lt; XSL: Text & gt; & Amp; #xA; & Lt; / XSL: text & gt; & Lt; Xsl: each selection = "data / tp / value" & gt; & Lt; Xsl: Select the value = "../@@" /> & Lt; XSL: Text & gt; & Lt; / XSL: text & gt; & Lt; Xsl: Select the value = "DATETIME" /> & Lt; XSL: Text & gt; & Lt; / XSL: text & gt; & Lt; Xsl: Select Value = "EE" /> & Lt; XSL: Text & gt; & Amp; #xA; & Lt; / XSL: text & gt; & Lt; / XSL: for-each & gt; & Lt; / XSL: Templates & gt; & Lt; / XSL: stylesheet & gt;  

Comments

Popular posts from this blog

Pass DB Connection parameters to a Kettle a.k.a PDI table Input step dynamically from Excel -

multithreading - PhantomJS-Node in a for Loop -

c++ - MATLAB .m file to .mex file using Matlab Compiler -