复杂的XML转换问题
时间:2011-10-09
来源:互联网
请帮忙写一个xslt将下面的xml转换成我需要的xml:
转换前:
<Worksheet ss:Name="Sheet1">
<Table ss:ExpandedColumnCount="4" ss:ExpandedRowCount="4" x:FullColumns="1" x:FullRows="1" ss:StyleID="s81" ss:DefaultColumnWidth="54" ss:DefaultRowHeight="13.5">
<Row>
<Cell ss:MergeAcross="1" ss:StyleID="s79">
<Data ss:Type="String">科目名称</Data>
</Cell>
<Cell ss:StyleID="s80">
<Data ss:Type="String">成本要素</Data>
</Cell>
<Cell ss:StyleID="s80">
<Data ss:Type="String">费用属性</Data>
</Cell>
</Row>
<Row>
<Cell ss:MergeAcross="1" ss:StyleID="s82">
<Data ss:Type="String">内燃机车小修</Data>
</Cell>
<Cell ss:StyleID="s83"/>
<Cell ss:StyleID="s83">
<Data ss:Type="String">生产费用</Data>
</Cell>
</Row>
<Row ss:Height="27">
<Cell ss:StyleID="s83"/>
<Cell ss:StyleID="s84">
<Data ss:Type="String">内燃机车小修</Data>
</Cell>
<Cell ss:StyleID="s83">
<Data ss:Type="String">材料</Data>
</Cell>
<Cell ss:StyleID="s83"/>
</Row>
<Row ss:Height="27">
<Cell ss:StyleID="s83"/>
<Cell ss:StyleID="s84">
<Data ss:Type="String">内燃机车配件大修</Data>
</Cell>
<Cell ss:StyleID="s83">
<Data ss:Type="String">其他</Data>
</Cell>
<Cell ss:StyleID="s83"/>
</Row>
</Table>
</Worksheet>
转换后:
<Worksheet>
<Row Name="内燃机车小修" FYStyle="生产费用">
<Cell Name="内燃机车小修" Style="材料"/>
<Cell Name="内燃机车配件大修" Style="其他"/>
</Row>
</Worksheet>
转换前:
<Worksheet ss:Name="Sheet1">
<Table ss:ExpandedColumnCount="4" ss:ExpandedRowCount="4" x:FullColumns="1" x:FullRows="1" ss:StyleID="s81" ss:DefaultColumnWidth="54" ss:DefaultRowHeight="13.5">
<Row>
<Cell ss:MergeAcross="1" ss:StyleID="s79">
<Data ss:Type="String">科目名称</Data>
</Cell>
<Cell ss:StyleID="s80">
<Data ss:Type="String">成本要素</Data>
</Cell>
<Cell ss:StyleID="s80">
<Data ss:Type="String">费用属性</Data>
</Cell>
</Row>
<Row>
<Cell ss:MergeAcross="1" ss:StyleID="s82">
<Data ss:Type="String">内燃机车小修</Data>
</Cell>
<Cell ss:StyleID="s83"/>
<Cell ss:StyleID="s83">
<Data ss:Type="String">生产费用</Data>
</Cell>
</Row>
<Row ss:Height="27">
<Cell ss:StyleID="s83"/>
<Cell ss:StyleID="s84">
<Data ss:Type="String">内燃机车小修</Data>
</Cell>
<Cell ss:StyleID="s83">
<Data ss:Type="String">材料</Data>
</Cell>
<Cell ss:StyleID="s83"/>
</Row>
<Row ss:Height="27">
<Cell ss:StyleID="s83"/>
<Cell ss:StyleID="s84">
<Data ss:Type="String">内燃机车配件大修</Data>
</Cell>
<Cell ss:StyleID="s83">
<Data ss:Type="String">其他</Data>
</Cell>
<Cell ss:StyleID="s83"/>
</Row>
</Table>
</Worksheet>
转换后:
<Worksheet>
<Row Name="内燃机车小修" FYStyle="生产费用">
<Cell Name="内燃机车小修" Style="材料"/>
<Cell Name="内燃机车配件大修" Style="其他"/>
</Row>
</Worksheet>
作者: robin_1 发布时间: 2011-10-09
XML code
<?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <Worksheet> <xsl:apply-templates select="//Row[position()>1]"/> </Worksheet> </xsl:template> <xsl:template match="Row"> <xsl:if test="current()[Cell[1]/Data]"> <Row> <xsl:attribute name="Name"><xsl:value-of select="Cell[1]/Data"/></xsl:attribute> <xsl:attribute name="FYStyle"><xsl:value-of select="Cell[3]/Data"/></xsl:attribute> </Row> </xsl:if> <xsl:if test="not(current()[Cell[1]/Data])"> <Cell> <xsl:attribute name="Name"><xsl:value-of select="Cell[2]/Data"/></xsl:attribute> <xsl:attribute name="Style"><xsl:value-of select="Cell[3]/Data"/></xsl:attribute> </Cell> </xsl:if> </xsl:template> </xsl:stylesheet>
作者: hookee 发布时间: 2011-10-10
不好意思,看错了,上面不对。
作者: hookee 发布时间: 2011-10-10
这个原始xml数据库有点毛病吧?
作者: magicleey1124 发布时间: 2011-10-10
这么晚,还帮忙,真是万分感谢。
作者: robin_1 发布时间: 2011-10-10
自己在顶一下
作者: robin_1 发布时间: 2011-10-10
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28