这个xsl怎么写

yoken 2003-10-31 11:00:39
源xml
<?xml version="1.0" encoding="UTF-8"?>
<HEADROW>
<a0 BH="1" CONVERTED="0" MC="单位名称"/>
<a1 BH="2" CONVERTED="0" MC="物资名称"/>
.
.
.
<a50 ..../>
<b0 BH="3" MC="号型"/>
<b1 BH="4" MC="数量"/>
</HEADROW>


目标xml
<?xml version="1.0" encoding="UTF-8"?>
<HEADROW>
<f BH="1" CONVERTED="0" MC="单位名称"/>
<f BH="2" CONVERTED="0" MC="物资名称"/>
.
.
.
</HEADROW>
其中<f>是<a0>到<a50>的复制

...全文
46 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yoken 2003-11-03
  • 打赏
  • 举报
回复
搞定了,用的attribute value template
zhfkiller 2003-10-31
  • 打赏
  • 举报
回复
为什么不用DOM
月光易水 2003-10-31
  • 打赏
  • 举报
回复
try:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="utf-8" />

<xsl:variable name="pix">a</xsl:variable>

<xsl:template match="/">
<xsl:apply-templates select="HEADROW"/>
</xsl:template>

<xsl:template match="HEADROW">
<xsl:apply-templates />
</xsl:template>

<xsl:template match="node()">
<xsl:choose>
<xsl:when test="substring(name(),1,1) = $pix">
<f>
<xsl:for-each select="@*">
<xsl:copy-of select="." />
</xsl:for-each>
</f>
</xsl:when>
<xsl:otherwise>
<xsl:copy-of select="." />
</xsl:otherwise>
</xsl:choose>
</xsl:template>

</xsl:stylesheet>



:_)
yoken 2003-10-31
  • 打赏
  • 举报
回复
另外,如何反过来

源xml

<?xml version="1.0" encoding="UTF-8"?>
<HEADROW>
<f BH="1" CONVERTED="0" MC="单位名称"/>
<f BH="2" CONVERTED="0" MC="物资名称"/>
.
.
.
</HEADROW>

目标xml

<?xml version="1.0" encoding="UTF-8"?>
<HEADROW>
<a0 BH="1" CONVERTED="0" MC="单位名称"/>
<a1 BH="2" CONVERTED="0" MC="物资名称"/>
.
.
.
<a50 ..../>
</HEADROW>



8,906

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧