我在下面有这个xml。它是转换为xml的TSV文件。我必须删除一些列。这些列在
中定义<xsl:param name="notNeeded">'size 1', 'Height 1', 'Peak Area 1'</xsl:param>
我必须使用此参数中的项目来消除列。我也把愿望附加出来。我需要根据“样本文件”C i =“0”从第i行“1”开始分组。
然后我必须根据此参数删除一些列。然后为每个组添加标头。请查看欲望输出。我的xsl生成错误。
-----输入xml
<?xml version="1.0" encoding="UTF-8"?>
<Message>
<Header>
<Id>ID:10.181.239.196-143b86d264f-11:3</Id>
<Instance>DataMarshalerBC</Instance>
<Source>SMX</Source>
<Destination>DMI</Destination>
<Date>2014-01-22</Date>
<Time>14:19:23</Time>
<Status>ok</Status>
</Header>
<Data>
<Data>
<R i="0">
<C i="0">Sample File</C>
<C i="1">Sample Name</C>
<C i="2">Dye</C>
<C i="3">Size 1</C>
<C i="4">Size 2</C>
<C i="5">Height 1</C>
<C i="6">Height 2</C>
<C i="7">Peak Area 1</C>
<C i="8">Peak Area 2</C>
</R>
<R i="1">
<C i="0">100CTRL-NEW3-LOT_2014-01-21_D06.fsa</C>
<C i="1">100CTRL-NEW3-LOT</C>
<C i="2">B</C>
<C i="3">143.84</C>
<C i="4">148.3</C>
<C i="5">3331</C>
<C i="6">2024</C>
<C i="7">30513</C>
<C i="8">18020</C>
</R>
<R i="2">
<C i="0">100CTRL-NEW3-LOT_2014-01-21_D06.fsa</C>
<C i="1">100CTRL-NEW3-LOT</C>
<C i="2">B</C>
<C i="3">204.1</C>
<C i="4"/>
<C i="5">4461</C>
<C i="6"/>
<C i="7">40664</C>
<C i="8"/>
</R>
<R i="3">
<C i="0">100CTRL-NEW3-LOT_2014-01-21_D06.fsa</C>
<C i="1">100CTRL-NEW3-LOT</C>
<C i="2">B</C>
<C i="3">275.08</C>
<C i="4">279.17</C>
<C i="5">2231</C>
<C i="6">1875</C>
<C i="7">25634</C>
<C i="8">21248</C>
</R>
<R i="4">
<C i="0">100CTRL-NEW3-LOT_2014-01-21_D06.fsa</C>
<C i="1">100CTRL-NEW3-LOT</C>
<C i="2">B</C>
<C i="3">321.22</C>
<C i="4">325.37</C>
<C i="5">2127</C>
<C i="6">2142</C>
<C i="7">23397</C>
<C i="8">23857</C>
</R>
<R i="5">
<C i="0">100CTRL-NEW3-LOT_2014-01-21_D06.fsa</C>
<C i="1">100CTRL-NEW3-LOT</C>
<C i="2">G</C>
<C i="3">127.46</C>
<C i="4">131.51</C>
<C i="5">2677</C>
<C i="6">2786</C>
<C i="7">27264</C>
<C i="8">28037</C>
</R>
<R i="6">
<C i="0">100CTRL-NEW3-LOT_2014-01-21_D06.fsa</C>
<C i="1">100CTRL-NEW3-LOT</C>
<C i="2">G</C>
<C i="3">170.9</C>
<C i="4">178.88</C>
<C i="5">4934</C>
<C i="6">4037</C>
<C i="7">42072</C>
<C i="8">34893</C>
</R>
<R i="7">
<C i="0">100CTRL-NEW3-LOT_2014-01-21_D06.fsa</C>
<C i="1">100CTRL-NEW3-LOT</C>
<C i="2">G</C>
<C i="3">232.28</C>
<C i="4"/>
<C i="5">3742</C>
<C i="6"/>
<C i="7">38389</C>
<C i="8"/>
</R>
<R i="8">
<C i="0">100CTRL-NEW3-LOT_2014-01-21_D06.fsa</C>
<C i="1">100CTRL-NEW3-LOT</C>
<C i="2">G</C>
<C i="3">275.87</C>
<C i="4">283.97</C>
<C i="5">1787</C>
<C i="6">1695</C>
<C i="7">18903</C>
<C i="8">18359</C>
</R>
<R i="9">
<C i="0">100CTRL-NEW3-LOT_2014-01-21_D06.fsa</C>
<C i="1">100CTRL-NEW3-LOT</C>
<C i="2">G</C>
<C i="3">315.38</C>
<C i="4">347.26</C>
<C i="5">2739</C>
<C i="6">2974</C>
<C i="7">30863</C>
<C i="8">34536</C>
</R>
<R i="10">
<C i="0">100CTRL-NEW3-LOT_2014-01-21_D06.fsa</C>
<C i="1">100CTRL-NEW3-LOT</C>
<C i="2">Y</C>
<C i="3">125.27</C>
<C i="4"/>
<C i="5">3781</C>
<C i="6"/>
<C i="7">31934</C>
<C i="8"/>
</R>
<R i="11">
<C i="0">100CTRL-NEW3-LOT_2014-01-21_D06.fsa</C>
<C i="1">100CTRL-NEW3-LOT</C>
<C i="2">Y</C>
<C i="3">174.49</C>
<C i="4"/>
<C i="5">2771</C>
<C i="6"/>
<C i="7">25628</C>
<C i="8"/>
</R>
<R i="12">
<C i="0">100CTRL-NEW3-LOT_2014-01-21_D06.fsa</C>
<C i="1">100CTRL-NEW3-LOT</C>
<C i="2">Y</C>
<C i="3">229.7</C>
<C i="4"/>
<C i="5">2876</C>
<C i="6"/>
<C i="7">34418</C>
<C i="8"/>
</R>
<R i="13">
<C i="0">100CTRL-NEW3-LOT_2014-01-21_D06.fsa</C>
<C i="1">100CTRL-NEW3-LOT</C>
<C i="2">Y</C>
<C i="3">282.16</C>
<C i="4">294.51</C>
<C i="5">2146</C>
<C i="6">1883</C>
<C i="7">22297</C>
<C i="8">19944</C>
</R>
<R i="14">
<C i="0">100CTRL-NEW3-LOT_2014-01-21_D06.fsa</C>
<C i="1">100CTRL-NEW3-LOT</C>
<C i="2">R</C>
<C i="3">106.27</C>
<C i="4">111.87</C>
<C i="5">735</C>
<C i="6">775</C>
<C i="7">7736</C>
<C i="8">8334</C>
</R>
<R i="15">
<C i="0">100CTRL-NEW3-LOT_2014-01-21_D06.fsa</C>
<C i="1">100CTRL-NEW3-LOT</C>
<C i="2">R</C>
<C i="3">142.23</C>
<C i="4">155.35</C>
<C i="5">1732</C>
<C i="6">1855</C>
<C i="7">16635</C>
<C i="8">18043</C>
</R>
<R i="16">
<C i="0">100CTRL-NEW3-LOT_2014-01-21_D06.fsa</C>
<C i="1">100CTRL-NEW3-LOT</C>
<C i="2">R</C>
<C i="3">222.2</C>
<C i="4">234.26</C>
<C i="5">841</C>
<C i="6">908</C>
<C i="7">8852</C>
<C i="8">10032</C>
</R>
<R i="17">
<C i="0">100CTRL-NEW4-LOT_2014-01-21_G06.fsa</C>
<C i="1">100CTRL-NEW4-LOT</C>
<C i="2">B</C>
<C i="3">143.93</C>
<C i="4">148.4</C>
<C i="5">2410</C>
<C i="6">1938</C>
<C i="7">23621</C>
<C i="8">18176</C>
</R>
<R i="18">
<C i="0">100CTRL-NEW4-LOT_2014-01-21_G06.fsa</C>
<C i="1">100CTRL-NEW4-LOT</C>
<C i="2">B</C>
<C i="3">204.16</C>
<C i="4"/>
<C i="5">3561</C>
<C i="6"/>
<C i="7">33659</C>
<C i="8"/>
</R>
<R i="19">
<C i="0">100CTRL-NEW4-LOT_2014-01-21_G06.fsa</C>
<C i="1">100CTRL-NEW4-LOT</C>
<C i="2">B</C>
<C i="3">275.09</C>
<C i="4">279.26</C>
<C i="5">2504</C>
<C i="6">1468</C>
<C i="7">29866</C>
<C i="8">17302</C>
</R>
<R i="20">
<C i="0">100CTRL-NEW4-LOT_2014-01-21_G06.fsa</C>
<C i="1">100CTRL-NEW4-LOT</C>
<C i="2">B</C>
<C i="3">321.35</C>
<C i="4">325.44</C>
<C i="5">2219</C>
<C i="6">1497</C>
<C i="7">25532</C>
<C i="8">17143</C>
</R>
<R i="21">
<C i="0">100CTRL-NEW4-LOT_2014-01-21_G06.fsa</C>
<C i="1">100CTRL-NEW4-LOT</C>
<C i="2">G</C>
<C i="3">127.56</C>
<C i="4">131.63</C>
<C i="5">2738</C>
<C i="6">2537</C>
<C i="7">28168</C>
<C i="8">26153</C>
</R>
<R i="22">
<C i="0">100CTRL-NEW4-LOT_2014-01-21_G06.fsa</C>
<C i="1">100CTRL-NEW4-LOT</C>
<C i="2">G</C>
<C i="3">170.99</C>
<C i="4">179.03</C>
<C i="5">3279</C>
<C i="6">4116</C>
<C i="7">29363</C>
<C i="8">37174</C>
</R>
<R i="23">
<C i="0">100CTRL-NEW4-LOT_2014-01-21_G06.fsa</C>
<C i="1">100CTRL-NEW4-LOT</C>
<C i="2">G</C>
<C i="3">232.34</C>
<C i="4"/>
<C i="5">3286</C>
<C i="6"/>
<C i="7">35270</C>
<C i="8"/>
</R>
<R i="24">
<C i="0">100CTRL-NEW4-LOT_2014-01-21_G06.fsa</C>
<C i="1">100CTRL-NEW4-LOT</C>
<C i="2">G</C>
<C i="3">275.94</C>
<C i="4">283.99</C>
<C i="5">1535</C>
<C i="6">1599</C>
<C i="7">16956</C>
<C i="8">17538</C>
</R>
<R i="25">
<C i="0">100CTRL-NEW4-LOT_2014-01-21_G06.fsa</C>
<C i="1">100CTRL-NEW4-LOT</C>
<C i="2">G</C>
<C i="3">315.43</C>
<C i="4">347.32</C>
<C i="5">1997</C>
<C i="6">2355</C>
<C i="7">23585</C>
<C i="8">28572</C>
</R>
<R i="26">
<C i="0">100CTRL-NEW4-LOT_2014-01-21_G06.fsa</C>
<C i="1">100CTRL-NEW4-LOT</C>
<C i="2">Y</C>
<C i="3">125.33</C>
<C i="4"/>
<C i="5">4260</C>
<C i="6"/>
<C i="7">37630</C>
<C i="8"/>
</R>
<R i="27">
<C i="0">100CTRL-NEW4-LOT_2014-01-21_G06.fsa</C>
<C i="1">100CTRL-NEW4-LOT</C>
<C i="2">Y</C>
<C i="3">174.65</C>
<C i="4"/>
<C i="5">2565</C>
<C i="6"/>
<C i="7">24491</C>
<C i="8"/>
</R>
<R i="28">
<C i="0">100CTRL-NEW4-LOT_2014-01-21_G06.fsa</C>
<C i="1">100CTRL-NEW4-LOT</C>
<C i="2">Y</C>
<C i="3">229.65</C>
<C i="4"/>
<C i="5">2730</C>
<C i="6"/>
<C i="7">34175</C>
<C i="8"/>
</R>
<R i="29">
<C i="0">100CTRL-NEW4-LOT_2014-01-21_G06.fsa</C>
<C i="1">100CTRL-NEW4-LOT</C>
<C i="2">Y</C>
<C i="3">282.2</C>
<C i="4">294.59</C>
<C i="5">1642</C>
<C i="6">1595</C>
<C i="7">17824</C>
<C i="8">17567</C>
</R>
<R i="30">
<C i="0">100CTRL-NEW4-LOT_2014-01-21_G06.fsa</C>
<C i="1">100CTRL-NEW4-LOT</C>
<C i="2">R</C>
<C i="3">106.29</C>
<C i="4">111.93</C>
<C i="5">841</C>
<C i="6">772</C>
<C i="7">8781</C>
<C i="8">8332</C>
</R>
<R i="31">
<C i="0">100CTRL-NEW4-LOT_2014-01-21_G06.fsa</C>
<C i="1">100CTRL-NEW4-LOT</C>
<C i="2">R</C>
<C i="3">142.34</C>
<C i="4">155.5</C>
<C i="5">1517</C>
<C i="6">1444</C>
<C i="7">15193</C>
<C i="8">14526</C>
</R>
<R i="32">
<C i="0">100CTRL-NEW4-LOT_2014-01-21_G06.fsa</C>
<C i="1">100CTRL-NEW4-LOT</C>
<C i="2">R</C>
<C i="3">222.29</C>
<C i="4">234.36</C>
<C i="5">808</C>
<C i="6">652</C>
<C i="7">8697</C>
<C i="8">6948</C>
</R>
</Data>
</Data>
<Attachments>
<Attachment Encoding="base64" Location="element" Name="Combined_GenotypesTable.txt">U2FtcGxlIEZpbGUJU2FtcGxlIE5hbWUJRHllCVNpemUgMQlTaXplIDIJSGVpZ2h0IDEJSGVpJUgpOVENfMjAxNC0wMS0yMV9DMDEuZnNhCU5UQwlSCk5UQ18yMDE0LTAxLTIxX0MwMS5mc2EJTlRDCVIK</Attachment>
</Attachments>
</Message>
- 我的xsl
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:param name="notNeeded">'size 1', 'Height 1', 'Peak Area 1'</xsl:param>
<xsl:variable name="NotNeededColumns" select="tokenize($notNeeded, ',')"/>
<xsl:key name="header" match="C[parent::R/@i='0']" use="@i"/>
<xsl:variable name="folder" select="substring-before(//Attachments/Attachment/@Name, '.')"/>
<xsl:variable name="d" select="current-dateTime()"/>
<xsl:template match="Message">
<Records>
<xsl:variable name="columnHeader" select="Data/Data/R[@i = 0]"/>
<xsl:variable name="data" select="//Data/R[@i > 0]"/>
<xsl:for-each-group select="$data" group-by="C[@i = 0]">
<xsl:variable name="filename" select="C[@i = 0]"/>
<Message>
<Header>
<Id>ID:10.181.239.196-143b86d264f-11:3</Id>
<Instance>DataMarshalerBC</Instance>
<Source>SMX</Source>
<Destination>DMI</Destination>
<Date>2014-01-22</Date>
<Time>14:19:23</Time>
<Status>ok</Status>
</Header>
<Data>
<Data>
<xsl:copy-of select="$columnHeader"/>
<xsl:for-each select="current-group()">
<xsl:element name="R">
<xsl:attribute name="i" select="position()"/>
<xsl:for-each select="$NotNeededColumns">
<xsl:copy-of select="R/C[key('header', @i) != $NotNeededColumns[1]]"/>
</xsl:for-each>
</xsl:element>
</xsl:for-each>
</Data>
</Data>
<Attachments>
<xsl:element name="Attachment">
<xsl:attribute name="Encoding" select="'base64'"/>
<xsl:attribute name="Location" select="'element'"/>
<xsl:attribute name="Name" select="concat($folder, '-', format-dateTime($d, '[M01]-[D01]-[Y0001]-[H01][m01]'), '_', $filename)"/>
</xsl:element>
</Attachments>
</Message>
</xsl:for-each-group>
</Records>
</xsl:template>
<xsl:template match="Header"/>
</xsl:stylesheet>
----欲望输出
<?xml version="1.0" encoding="UTF-8"?>
<Records xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<Message>
<Header>
<Id>ID:10.181.239.196-143b86d264f-11:3</Id>
<Instance>DataMarshalerBC</Instance>
<Source>SMX</Source>
<Destination>DMI</Destination>
<Date>2014-01-22</Date>
<Time>14:19:23</Time>
<Status>ok</Status>
</Header>
<Data>
<Data>
<R i="0">
<C i="0">Sample File</C>
<C i="1">Sample Name</C>
<C i="2">Dye</C>
<C i="5">Height 1</C>
<C i="6">Height 2</C>
<C i="8">Peak Area 2</C>
</R>
<R i="1">
<C i="0">100CTRL-NEW3-LOT_2014-01-21_D06.fsa</C>
<C i="1">100CTRL-NEW3-LOT</C>
<C i="2">B</C>
<C i="5">3331</C>
<C i="6">2024</C>
<C i="8">18020</C>
</R>
<R i="2">
<C i="0">100CTRL-NEW3-LOT_2014-01-21_D06.fsa</C>
<C i="1">100CTRL-NEW3-LOT</C>
<C i="2">B</C>
<C i="5">4461</C>
<C i="6"/>
<C i="8"/>
</R>
<R i="3">
<C i="0">100CTRL-NEW3-LOT_2014-01-21_D06.fsa</C>
<C i="1">100CTRL-NEW3-LOT</C>
<C i="2">B</C>
<C i="5">2231</C>
<C i="6">1875</C>
<C i="8">21248</C>
</R>
<R i="4">
<C i="0">100CTRL-NEW3-LOT_2014-01-21_D06.fsa</C>
<C i="1">100CTRL-NEW3-LOT</C>
<C i="2">B</C>
<C i="5">2127</C>
<C i="6">2142</C>
<C i="8">23857</C>
</R>
<R i="5">
<C i="0">100CTRL-NEW3-LOT_2014-01-21_D06.fsa</C>
<C i="1">100CTRL-NEW3-LOT</C>
<C i="2">G</C>
<C i="5">2677</C>
<C i="6">2786</C>
<C i="8">28037</C>
</R>
<R i="6">
<C i="0">100CTRL-NEW3-LOT_2014-01-21_D06.fsa</C>
<C i="1">100CTRL-NEW3-LOT</C>
<C i="2">G</C>
<C i="5">4934</C>
<C i="6">4037</C>
<C i="8">34893</C>
</R>
<R i="7">
<C i="0">100CTRL-NEW3-LOT_2014-01-21_D06.fsa</C>
<C i="1">100CTRL-NEW3-LOT</C>
<C i="2">G</C>
<C i="5">3742</C>
<C i="6"/>
<C i="8"/>
</R>
<R i="8">
<C i="0">100CTRL-NEW3-LOT_2014-01-21_D06.fsa</C>
<C i="1">100CTRL-NEW3-LOT</C>
<C i="2">G</C>
<C i="5">1787</C>
<C i="6">1695</C>
<C i="8">18359</C>
</R>
<R i="9">
<C i="0">100CTRL-NEW3-LOT_2014-01-21_D06.fsa</C>
<C i="1">100CTRL-NEW3-LOT</C>
<C i="2">G</C>
<C i="5">2739</C>
<C i="6">2974</C>
<C i="8">34536</C>
</R>
<R i="10">
<C i="0">100CTRL-NEW3-LOT_2014-01-21_D06.fsa</C>
<C i="1">100CTRL-NEW3-LOT</C>
<C i="2">Y</C>
<C i="5">3781</C>
<C i="6"/>
<C i="8"/>
</R>
<R i="11">
<C i="0">100CTRL-NEW3-LOT_2014-01-21_D06.fsa</C>
<C i="1">100CTRL-NEW3-LOT</C>
<C i="2">Y</C>
<C i="5">2771</C>
<C i="6"/>
<C i="8"/>
</R>
<R i="12">
<C i="0">100CTRL-NEW3-LOT_2014-01-21_D06.fsa</C>
<C i="1">100CTRL-NEW3-LOT</C>
<C i="2">Y</C>
<C i="5">2876</C>
<C i="6"/>
<C i="8"/>
</R>
<R i="13">
<C i="0">100CTRL-NEW3-LOT_2014-01-21_D06.fsa</C>
<C i="1">100CTRL-NEW3-LOT</C>
<C i="2">Y</C>
<C i="5">2146</C>
<C i="6">1883</C>
<C i="8">19944</C>
</R>
<R i="14">
<C i="0">100CTRL-NEW3-LOT_2014-01-21_D06.fsa</C>
<C i="1">100CTRL-NEW3-LOT</C>
<C i="2">R</C>
<C i="5">735</C>
<C i="6">775</C>
<C i="8">8334</C>
</R>
<R i="15">
<C i="0">100CTRL-NEW3-LOT_2014-01-21_D06.fsa</C>
<C i="1">100CTRL-NEW3-LOT</C>
<C i="2">R</C>
<C i="5">1732</C>
<C i="6">1855</C>
<C i="8">18043</C>
</R>
<R i="16">
<C i="0">100CTRL-NEW3-LOT_2014-01-21_D06.fsa</C>
<C i="1">100CTRL-NEW3-LOT</C>
<C i="2">R</C>
<C i="5">841</C>
<C i="6">908</C>
<C i="8">10032</C>
</R>
</Data>
</Data>
<Attachments>
<Attachment Encoding="base64" Location="element" Name="Combined_GenotypesTable-02-04-2014-1006_100CTRL-NEW3-LOT_2014-01-21_D06.fsa"/>
</Attachments>
</Message>
<Message>
<Header>
<Id>ID:10.181.239.196-143b86d264f-11:3</Id>
<Instance>DataMarshalerBC</Instance>
<Source>SMX</Source>
<Destination>DMI</Destination>
<Date>2014-01-22</Date>
<Time>14:19:23</Time>
<Status>ok</Status>
</Header>
<Data>
<Data>
<R i="0">
<C i="0">Sample File</C>
<C i="1">Sample Name</C>
<C i="2">Dye</C>
<C i="5">Height 1</C>
<C i="6">Height 2</C>
<C i="8">Peak Area 2</C>
</R>
<R i="1">
<C i="0">100CTRL-NEW4-LOT_2014-01-21_G06.fsa</C>
<C i="1">100CTRL-NEW4-LOT</C>
<C i="2">B</C>
<C i="5">2410</C>
<C i="6">1938</C>
<C i="8">18176</C>
</R>
<R i="2">
<C i="0">100CTRL-NEW4-LOT_2014-01-21_G06.fsa</C>
<C i="1">100CTRL-NEW4-LOT</C>
<C i="2">B</C>
<C i="5">3561</C>
<C i="6"/>
<C i="8"/>
</R>
<R i="3">
<C i="0">100CTRL-NEW4-LOT_2014-01-21_G06.fsa</C>
<C i="1">100CTRL-NEW4-LOT</C>
<C i="2">B</C>
<C i="5">2504</C>
<C i="6">1468</C>
<C i="8">17302</C>
</R>
<R i="4">
<C i="0">100CTRL-NEW4-LOT_2014-01-21_G06.fsa</C>
<C i="1">100CTRL-NEW4-LOT</C>
<C i="2">B</C>
<C i="5">2219</C>
<C i="6">1497</C>
<C i="8">17143</C>
</R>
<R i="5">
<C i="0">100CTRL-NEW4-LOT_2014-01-21_G06.fsa</C>
<C i="1">100CTRL-NEW4-LOT</C>
<C i="2">G</C>
<C i="5">2738</C>
<C i="6">2537</C>
<C i="8">26153</C>
</R>
<R i="6">
<C i="0">100CTRL-NEW4-LOT_2014-01-21_G06.fsa</C>
<C i="1">100CTRL-NEW4-LOT</C>
<C i="2">G</C>
<C i="5">3279</C>
<C i="6">4116</C>
<C i="8">37174</C>
</R>
<R i="7">
<C i="0">100CTRL-NEW4-LOT_2014-01-21_G06.fsa</C>
<C i="1">100CTRL-NEW4-LOT</C>
<C i="2">G</C>
<C i="5">3286</C>
<C i="6"/>
<C i="8"/>
</R>
<R i="8">
<C i="0">100CTRL-NEW4-LOT_2014-01-21_G06.fsa</C>
<C i="1">100CTRL-NEW4-LOT</C>
<C i="2">G</C>
<C i="5">1535</C>
<C i="6">1599</C>
<C i="8">17538</C>
</R>
<R i="9">
<C i="0">100CTRL-NEW4-LOT_2014-01-21_G06.fsa</C>
<C i="1">100CTRL-NEW4-LOT</C>
<C i="2">G</C>
<C i="5">1997</C>
<C i="6">2355</C>
<C i="8">28572</C>
</R>
<R i="10">
<C i="0">100CTRL-NEW4-LOT_2014-01-21_G06.fsa</C>
<C i="1">100CTRL-NEW4-LOT</C>
<C i="2">Y</C>
<C i="5">4260</C>
<C i="6"/>
<C i="8"/>
</R>
<R i="11">
<C i="0">100CTRL-NEW4-LOT_2014-01-21_G06.fsa</C>
<C i="1">100CTRL-NEW4-LOT</C>
<C i="2">Y</C>
<C i="5">2565</C>
<C i="6"/>
<C i="8"/>
</R>
<R i="12">
<C i="0">100CTRL-NEW4-LOT_2014-01-21_G06.fsa</C>
<C i="1">100CTRL-NEW4-LOT</C>
<C i="2">Y</C>
<C i="5">2730</C>
<C i="6"/>
<C i="8"/>
</R>
<R i="13">
<C i="0">100CTRL-NEW4-LOT_2014-01-21_G06.fsa</C>
<C i="1">100CTRL-NEW4-LOT</C>
<C i="2">Y</C>
<C i="5">1642</C>
<C i="6">1595</C>
<C i="8">17567</C>
</R>
<R i="14">
<C i="0">100CTRL-NEW4-LOT_2014-01-21_G06.fsa</C>
<C i="1">100CTRL-NEW4-LOT</C>
<C i="2">R</C>
<C i="5">841</C>
<C i="6">772</C>
<C i="8">8332</C>
</R>
<R i="15">
<C i="0">100CTRL-NEW4-LOT_2014-01-21_G06.fsa</C>
<C i="1">100CTRL-NEW4-LOT</C>
<C i="2">R</C>
<C i="5">1517</C>
<C i="6">1444</C>
<C i="8">14526</C>
</R>
<R i="16">
<C i="0">100CTRL-NEW4-LOT_2014-01-21_G06.fsa</C>
<C i="1">100CTRL-NEW4-LOT</C>
<C i="2">R</C>
<C i="5">808</C>
<C i="6">652</C>
<C i="8">6948</C>
</R>
</Data>
</Data>
<Attachments>
<Attachment Encoding="base64" Location="element" Name="Combined_GenotypesTable-02-04-2014-1006_100CTRL-NEW4-LOT_2014-01-21_G06.fsa"/>
</Attachments>
</Message>
</Records>
答案 0 :(得分:0)
我认为通过将xsl:param
括在括号中将<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:param name="notNeeded" select="('Size 1', 'Height 1', 'Peak Area 1')"/>
<xsl:variable name="notNeededIDs" select="//R[@i='0']/C[.=$notNeeded]/@i"/>
<xsl:variable name="dt" select="current-dateTime()"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="/*">
<Records>
<xsl:for-each-group select="Data/Data/R[not(position()=1)]" group-by="C[@i='0']">
<Message>
<xsl:apply-templates select="/*/Header"/>
<Data>
<Data>
<xsl:apply-templates select="/*/Data/Data/R[position()=1]"/>
<xsl:apply-templates select="current-group()"/>
</Data>
</Data>
<xsl:apply-templates select="/*/Attachments">
<xsl:with-param name="filename" select="C[@i=0]" tunnel="yes"/>
</xsl:apply-templates>
</Message>
</xsl:for-each-group>
</Records>
</xsl:template>
<xsl:template match="R[not(position()=1)]">
<R i="{position()}">
<xsl:apply-templates/>
</R>
</xsl:template>
<xsl:template match="Attachment">
<xsl:param name="filename" tunnel="yes"/>
<Attachment>
<xsl:apply-templates select="@*"/>
<xsl:attribute name="Name" select="concat(substring-before(@Name,'.'),'-',format-dateTime($dt,'[M01]-[D01]-[Y0001]-[H01][m01]'),'_',$filename)"/>
</Attachment>
</xsl:template>
<xsl:template match="C[@i=$notNeededIDs]"/>
</xsl:stylesheet>
转换为序列可能会更容易。
这是一个例子......
XSLT 2.0
<Records>
<Message>
<Header>
<Id>ID:10.181.239.196-143b86d264f-11:3</Id>
<Instance>DataMarshalerBC</Instance>
<Source>SMX</Source>
<Destination>DMI</Destination>
<Date>2014-01-22</Date>
<Time>14:19:23</Time>
<Status>ok</Status>
</Header>
<Data>
<Data>
<R i="0">
<C i="0">Sample File</C>
<C i="1">Sample Name</C>
<C i="2">Dye</C>
<C i="4">Size 2</C>
<C i="6">Height 2</C>
<C i="8">Peak Area 2</C>
</R>
<R i="1">
<C i="0">100CTRL-NEW3-LOT_2014-01-21_D06.fsa</C>
<C i="1">100CTRL-NEW3-LOT</C>
<C i="2">B</C>
<C i="4">148.3</C>
<C i="6">2024</C>
<C i="8">18020</C>
</R>
<R i="2">
<C i="0">100CTRL-NEW3-LOT_2014-01-21_D06.fsa</C>
<C i="1">100CTRL-NEW3-LOT</C>
<C i="2">B</C>
<C i="4"/>
<C i="6"/>
<C i="8"/>
</R>
<R i="3">
<C i="0">100CTRL-NEW3-LOT_2014-01-21_D06.fsa</C>
<C i="1">100CTRL-NEW3-LOT</C>
<C i="2">B</C>
<C i="4">279.17</C>
<C i="6">1875</C>
<C i="8">21248</C>
</R>
<R i="4">
<C i="0">100CTRL-NEW3-LOT_2014-01-21_D06.fsa</C>
<C i="1">100CTRL-NEW3-LOT</C>
<C i="2">B</C>
<C i="4">325.37</C>
<C i="6">2142</C>
<C i="8">23857</C>
</R>
<R i="5">
<C i="0">100CTRL-NEW3-LOT_2014-01-21_D06.fsa</C>
<C i="1">100CTRL-NEW3-LOT</C>
<C i="2">G</C>
<C i="4">131.51</C>
<C i="6">2786</C>
<C i="8">28037</C>
</R>
<R i="6">
<C i="0">100CTRL-NEW3-LOT_2014-01-21_D06.fsa</C>
<C i="1">100CTRL-NEW3-LOT</C>
<C i="2">G</C>
<C i="4">178.88</C>
<C i="6">4037</C>
<C i="8">34893</C>
</R>
<R i="7">
<C i="0">100CTRL-NEW3-LOT_2014-01-21_D06.fsa</C>
<C i="1">100CTRL-NEW3-LOT</C>
<C i="2">G</C>
<C i="4"/>
<C i="6"/>
<C i="8"/>
</R>
<R i="8">
<C i="0">100CTRL-NEW3-LOT_2014-01-21_D06.fsa</C>
<C i="1">100CTRL-NEW3-LOT</C>
<C i="2">G</C>
<C i="4">283.97</C>
<C i="6">1695</C>
<C i="8">18359</C>
</R>
<R i="9">
<C i="0">100CTRL-NEW3-LOT_2014-01-21_D06.fsa</C>
<C i="1">100CTRL-NEW3-LOT</C>
<C i="2">G</C>
<C i="4">347.26</C>
<C i="6">2974</C>
<C i="8">34536</C>
</R>
<R i="10">
<C i="0">100CTRL-NEW3-LOT_2014-01-21_D06.fsa</C>
<C i="1">100CTRL-NEW3-LOT</C>
<C i="2">Y</C>
<C i="4"/>
<C i="6"/>
<C i="8"/>
</R>
<R i="11">
<C i="0">100CTRL-NEW3-LOT_2014-01-21_D06.fsa</C>
<C i="1">100CTRL-NEW3-LOT</C>
<C i="2">Y</C>
<C i="4"/>
<C i="6"/>
<C i="8"/>
</R>
<R i="12">
<C i="0">100CTRL-NEW3-LOT_2014-01-21_D06.fsa</C>
<C i="1">100CTRL-NEW3-LOT</C>
<C i="2">Y</C>
<C i="4"/>
<C i="6"/>
<C i="8"/>
</R>
<R i="13">
<C i="0">100CTRL-NEW3-LOT_2014-01-21_D06.fsa</C>
<C i="1">100CTRL-NEW3-LOT</C>
<C i="2">Y</C>
<C i="4">294.51</C>
<C i="6">1883</C>
<C i="8">19944</C>
</R>
<R i="14">
<C i="0">100CTRL-NEW3-LOT_2014-01-21_D06.fsa</C>
<C i="1">100CTRL-NEW3-LOT</C>
<C i="2">R</C>
<C i="4">111.87</C>
<C i="6">775</C>
<C i="8">8334</C>
</R>
<R i="15">
<C i="0">100CTRL-NEW3-LOT_2014-01-21_D06.fsa</C>
<C i="1">100CTRL-NEW3-LOT</C>
<C i="2">R</C>
<C i="4">155.35</C>
<C i="6">1855</C>
<C i="8">18043</C>
</R>
<R i="16">
<C i="0">100CTRL-NEW3-LOT_2014-01-21_D06.fsa</C>
<C i="1">100CTRL-NEW3-LOT</C>
<C i="2">R</C>
<C i="4">234.26</C>
<C i="6">908</C>
<C i="8">10032</C>
</R>
</Data>
</Data>
<Attachments>
<Attachment Encoding="base64"
Location="element"
Name="Combined_GenotypesTable-02-04-2014-1216_100CTRL-NEW3-LOT_2014-01-21_D06.fsa"/>
</Attachments>
</Message>
<Message>
<Header>
<Id>ID:10.181.239.196-143b86d264f-11:3</Id>
<Instance>DataMarshalerBC</Instance>
<Source>SMX</Source>
<Destination>DMI</Destination>
<Date>2014-01-22</Date>
<Time>14:19:23</Time>
<Status>ok</Status>
</Header>
<Data>
<Data>
<R i="0">
<C i="0">Sample File</C>
<C i="1">Sample Name</C>
<C i="2">Dye</C>
<C i="4">Size 2</C>
<C i="6">Height 2</C>
<C i="8">Peak Area 2</C>
</R>
<R i="1">
<C i="0">100CTRL-NEW4-LOT_2014-01-21_G06.fsa</C>
<C i="1">100CTRL-NEW4-LOT</C>
<C i="2">B</C>
<C i="4">148.4</C>
<C i="6">1938</C>
<C i="8">18176</C>
</R>
<R i="2">
<C i="0">100CTRL-NEW4-LOT_2014-01-21_G06.fsa</C>
<C i="1">100CTRL-NEW4-LOT</C>
<C i="2">B</C>
<C i="4"/>
<C i="6"/>
<C i="8"/>
</R>
<R i="3">
<C i="0">100CTRL-NEW4-LOT_2014-01-21_G06.fsa</C>
<C i="1">100CTRL-NEW4-LOT</C>
<C i="2">B</C>
<C i="4">279.26</C>
<C i="6">1468</C>
<C i="8">17302</C>
</R>
<R i="4">
<C i="0">100CTRL-NEW4-LOT_2014-01-21_G06.fsa</C>
<C i="1">100CTRL-NEW4-LOT</C>
<C i="2">B</C>
<C i="4">325.44</C>
<C i="6">1497</C>
<C i="8">17143</C>
</R>
<R i="5">
<C i="0">100CTRL-NEW4-LOT_2014-01-21_G06.fsa</C>
<C i="1">100CTRL-NEW4-LOT</C>
<C i="2">G</C>
<C i="4">131.63</C>
<C i="6">2537</C>
<C i="8">26153</C>
</R>
<R i="6">
<C i="0">100CTRL-NEW4-LOT_2014-01-21_G06.fsa</C>
<C i="1">100CTRL-NEW4-LOT</C>
<C i="2">G</C>
<C i="4">179.03</C>
<C i="6">4116</C>
<C i="8">37174</C>
</R>
<R i="7">
<C i="0">100CTRL-NEW4-LOT_2014-01-21_G06.fsa</C>
<C i="1">100CTRL-NEW4-LOT</C>
<C i="2">G</C>
<C i="4"/>
<C i="6"/>
<C i="8"/>
</R>
<R i="8">
<C i="0">100CTRL-NEW4-LOT_2014-01-21_G06.fsa</C>
<C i="1">100CTRL-NEW4-LOT</C>
<C i="2">G</C>
<C i="4">283.99</C>
<C i="6">1599</C>
<C i="8">17538</C>
</R>
<R i="9">
<C i="0">100CTRL-NEW4-LOT_2014-01-21_G06.fsa</C>
<C i="1">100CTRL-NEW4-LOT</C>
<C i="2">G</C>
<C i="4">347.32</C>
<C i="6">2355</C>
<C i="8">28572</C>
</R>
<R i="10">
<C i="0">100CTRL-NEW4-LOT_2014-01-21_G06.fsa</C>
<C i="1">100CTRL-NEW4-LOT</C>
<C i="2">Y</C>
<C i="4"/>
<C i="6"/>
<C i="8"/>
</R>
<R i="11">
<C i="0">100CTRL-NEW4-LOT_2014-01-21_G06.fsa</C>
<C i="1">100CTRL-NEW4-LOT</C>
<C i="2">Y</C>
<C i="4"/>
<C i="6"/>
<C i="8"/>
</R>
<R i="12">
<C i="0">100CTRL-NEW4-LOT_2014-01-21_G06.fsa</C>
<C i="1">100CTRL-NEW4-LOT</C>
<C i="2">Y</C>
<C i="4"/>
<C i="6"/>
<C i="8"/>
</R>
<R i="13">
<C i="0">100CTRL-NEW4-LOT_2014-01-21_G06.fsa</C>
<C i="1">100CTRL-NEW4-LOT</C>
<C i="2">Y</C>
<C i="4">294.59</C>
<C i="6">1595</C>
<C i="8">17567</C>
</R>
<R i="14">
<C i="0">100CTRL-NEW4-LOT_2014-01-21_G06.fsa</C>
<C i="1">100CTRL-NEW4-LOT</C>
<C i="2">R</C>
<C i="4">111.93</C>
<C i="6">772</C>
<C i="8">8332</C>
</R>
<R i="15">
<C i="0">100CTRL-NEW4-LOT_2014-01-21_G06.fsa</C>
<C i="1">100CTRL-NEW4-LOT</C>
<C i="2">R</C>
<C i="4">155.5</C>
<C i="6">1444</C>
<C i="8">14526</C>
</R>
<R i="16">
<C i="0">100CTRL-NEW4-LOT_2014-01-21_G06.fsa</C>
<C i="1">100CTRL-NEW4-LOT</C>
<C i="2">R</C>
<C i="4">234.36</C>
<C i="6">652</C>
<C i="8">6948</C>
</R>
</Data>
</Data>
<Attachments>
<Attachment Encoding="base64"
Location="element"
Name="Combined_GenotypesTable-02-04-2014-1216_100CTRL-NEW4-LOT_2014-01-21_G06.fsa"/>
</Attachments>
</Message>
</Records>
XML输出
C/@i
修改
如果您想更改<xsl:template match="C">
<C>
<xsl:attribute name="i">
<xsl:number count="C[not(@i=$notNeededIDs)]"/>
</xsl:attribute>
<xsl:apply-templates/>
</C>
</xsl:template>
的编号,请添加此模板:
C
这将输出您在评论中要求的 <R i="0">
<C i="1">Sample File</C>
<C i="2">Sample Name</C>
<C i="3">Dye</C>
<C i="4">Size 2</C>
<C i="5">Height 2</C>
<C i="6">Peak Area 2</C>
</R>
元素:
{{1}}