请教一个关于xslt解析带命名空间xml的问题
时间:2010-12-28
来源:互联网
有一个excel生成的xml表格1.xml,用excel.xslt解析,输出sheet1的表格格式
1.xml片段
<Worksheet ss:Name="Sheet1">
<Table ss:ExpandedColumnCount="9" ss:ExpandedRowCount="3" x:FullColumns="1"
x:FullRows="1" ss:DefaultColumnWidth="54" ss:DefaultRowHeight="14.25">
<Row>
<Cell ss:MergeDown="2" ss:StyleID="s64"><Data ss:Type="String">时间</Data></Cell>
<Cell ss:MergeAcross="5" ss:StyleID="s64"><Data ss:Type="String">基本信息</Data></Cell>
<Cell ss:MergeAcross="1" ss:MergeDown="1" ss:StyleID="s64"><Data
ss:Type="String">其他信息</Data></Cell>
</Row>
<Row>
<Cell ss:Index="2" ss:MergeDown="1" ss:StyleID="s64"><Data ss:Type="String">日期</Data></Cell>
<Cell ss:MergeAcross="2" ss:StyleID="s64"><Data ss:Type="String">个人信息</Data></Cell>
<Cell ss:MergeAcross="1" ss:StyleID="s64"><Data ss:Type="String">单位信息</Data></Cell>
</Row>
<Row>
<Cell ss:Index="3" ss:StyleID="s62"><Data ss:Type="String">姓名</Data></Cell>
<Cell ss:StyleID="s62"><Data ss:Type="String">性别</Data></Cell>
<Cell ss:StyleID="s62"><Data ss:Type="String">年龄</Data></Cell>
<Cell ss:StyleID="s62"><Data ss:Type="String">单位名</Data></Cell>
<Cell ss:StyleID="s62"><Data ss:Type="String">邮编</Data></Cell>
<Cell ss:StyleID="s62"><Data ss:Type="String">备注1</Data></Cell>
<Cell ss:StyleID="s62"><Data ss:Type="String">备注2</Data></Cell>
</Row>
</Table>
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
<PageSetup>
<Layout x:Orientation="Landscape"/>
</PageSetup>
<Print>
<ValidPrinterInfo/>
<PaperSizeIndex>9</PaperSizeIndex>
<HorizontalResolution>600</HorizontalResolution>
<VerticalResolution>0</VerticalResolution>
</Print>
<Selected/>
<Panes>
<Pane>
<Number>3</Number>
<ActiveRow>5</ActiveRow>
<ActiveCol>6</ActiveCol>
</Pane>
</Panes>
<ProtectObjects>False</ProtectObjects>
<ProtectScenarios>False</ProtectScenarios>
</WorksheetOptions>
</Worksheet>
-----------------------------------------------------------
excel.xslt
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" version="1.0">
<xsl:output method="html"/>
<xsl:template match="/">
<table>
<xsl:for-each select="ss:Workbook/ss:Worksheet/ss:Table/ss:Row">
<tr>
<xsl:for-each select="ss:Cell">
<th style="border:solid 1px #ccc">
<xsl:if test="@ss:MergeAcross!=''">
<xsl:attribute name="colspan">
<xsl:value-of select="@ss:MergeAcross+1"/>
</xsl:attribute>
</xsl:if>
<xsl:if test="@ss:MergeDown!=''">
<xsl:attribute name="rowspan">
<xsl:value-of select="@ss:MergeDown+1"/>
</xsl:attribute>
</xsl:if>
<xsl:value-of select="ss:Data" />
</th>
</xsl:for-each>
<xsl:text></xsl:text>
</tr>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>
-------------------------------------------------
输出的1.html
<table xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"> <tr>
<th style="border:solid 1px #ccc" rowspan="3">时间</th>
<th style="border:solid 1px #ccc" colspan="6">基本信息</th>
<th style="border:solid 1px #ccc" colspan="2" rowspan="2">其他信息</th>
</tr>
<tr>
<th style="border:solid 1px #ccc" rowspan="2">日期</th>
<th style="border:solid 1px #ccc" colspan="3">个人信息</th>
<th style="border:solid 1px #ccc" colspan="2">单位信息</th>
</tr>
<tr>
<th style="border:solid 1px #ccc">姓名</th>
<th style="border:solid 1px #ccc">性别</th>
<th style="border:solid 1px #ccc">年龄</th>
<th style="border:solid 1px #ccc">单位名</th>
<th style="border:solid 1px #ccc">邮编</th>
<th style="border:solid 1px #ccc">备注1</th>
<th style="border:solid 1px #ccc">备注2</th>
</tr>
</table>
------------------
如上面红色处,如何能让这个<table xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">不带有命名空间,只输出为<table>,请高手指教
1.xml片段
<Worksheet ss:Name="Sheet1">
<Table ss:ExpandedColumnCount="9" ss:ExpandedRowCount="3" x:FullColumns="1"
x:FullRows="1" ss:DefaultColumnWidth="54" ss:DefaultRowHeight="14.25">
<Row>
<Cell ss:MergeDown="2" ss:StyleID="s64"><Data ss:Type="String">时间</Data></Cell>
<Cell ss:MergeAcross="5" ss:StyleID="s64"><Data ss:Type="String">基本信息</Data></Cell>
<Cell ss:MergeAcross="1" ss:MergeDown="1" ss:StyleID="s64"><Data
ss:Type="String">其他信息</Data></Cell>
</Row>
<Row>
<Cell ss:Index="2" ss:MergeDown="1" ss:StyleID="s64"><Data ss:Type="String">日期</Data></Cell>
<Cell ss:MergeAcross="2" ss:StyleID="s64"><Data ss:Type="String">个人信息</Data></Cell>
<Cell ss:MergeAcross="1" ss:StyleID="s64"><Data ss:Type="String">单位信息</Data></Cell>
</Row>
<Row>
<Cell ss:Index="3" ss:StyleID="s62"><Data ss:Type="String">姓名</Data></Cell>
<Cell ss:StyleID="s62"><Data ss:Type="String">性别</Data></Cell>
<Cell ss:StyleID="s62"><Data ss:Type="String">年龄</Data></Cell>
<Cell ss:StyleID="s62"><Data ss:Type="String">单位名</Data></Cell>
<Cell ss:StyleID="s62"><Data ss:Type="String">邮编</Data></Cell>
<Cell ss:StyleID="s62"><Data ss:Type="String">备注1</Data></Cell>
<Cell ss:StyleID="s62"><Data ss:Type="String">备注2</Data></Cell>
</Row>
</Table>
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
<PageSetup>
<Layout x:Orientation="Landscape"/>
</PageSetup>
<Print>
<ValidPrinterInfo/>
<PaperSizeIndex>9</PaperSizeIndex>
<HorizontalResolution>600</HorizontalResolution>
<VerticalResolution>0</VerticalResolution>
</Print>
<Selected/>
<Panes>
<Pane>
<Number>3</Number>
<ActiveRow>5</ActiveRow>
<ActiveCol>6</ActiveCol>
</Pane>
</Panes>
<ProtectObjects>False</ProtectObjects>
<ProtectScenarios>False</ProtectScenarios>
</WorksheetOptions>
</Worksheet>
-----------------------------------------------------------
excel.xslt
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" version="1.0">
<xsl:output method="html"/>
<xsl:template match="/">
<table>
<xsl:for-each select="ss:Workbook/ss:Worksheet/ss:Table/ss:Row">
<tr>
<xsl:for-each select="ss:Cell">
<th style="border:solid 1px #ccc">
<xsl:if test="@ss:MergeAcross!=''">
<xsl:attribute name="colspan">
<xsl:value-of select="@ss:MergeAcross+1"/>
</xsl:attribute>
</xsl:if>
<xsl:if test="@ss:MergeDown!=''">
<xsl:attribute name="rowspan">
<xsl:value-of select="@ss:MergeDown+1"/>
</xsl:attribute>
</xsl:if>
<xsl:value-of select="ss:Data" />
</th>
</xsl:for-each>
<xsl:text></xsl:text>
</tr>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>
-------------------------------------------------
输出的1.html
<table xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"> <tr>
<th style="border:solid 1px #ccc" rowspan="3">时间</th>
<th style="border:solid 1px #ccc" colspan="6">基本信息</th>
<th style="border:solid 1px #ccc" colspan="2" rowspan="2">其他信息</th>
</tr>
<tr>
<th style="border:solid 1px #ccc" rowspan="2">日期</th>
<th style="border:solid 1px #ccc" colspan="3">个人信息</th>
<th style="border:solid 1px #ccc" colspan="2">单位信息</th>
</tr>
<tr>
<th style="border:solid 1px #ccc">姓名</th>
<th style="border:solid 1px #ccc">性别</th>
<th style="border:solid 1px #ccc">年龄</th>
<th style="border:solid 1px #ccc">单位名</th>
<th style="border:solid 1px #ccc">邮编</th>
<th style="border:solid 1px #ccc">备注1</th>
<th style="border:solid 1px #ccc">备注2</th>
</tr>
</table>
------------------
如上面红色处,如何能让这个<table xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">不带有命名空间,只输出为<table>,请高手指教
作者: yinmoo82 发布时间: 2010-12-28
try exclude-result-prefixes
refer to http://rosscify.wordpress.com/2008/09/11/remove-xml-namespaces-from-transformed-xml-xsl/
refer to http://rosscify.wordpress.com/2008/09/11/remove-xml-namespaces-from-transformed-xml-xsl/
作者: masterz 发布时间: 2010-12-29
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28