麻烦各位GG,帮看看,该XML如何用xslt模板转换

yxceo 2006-05-31 10:14:15
xml原文件

<黑社会>
<机密档案>
<档案 id="大D">
<三围>25</三围>
<三围>26</三围>
<话事人>no</话事人>
</档案>
<档案 id="邓伯">
<三围>33</三围>
<三围>36</三围>
<话事人>no</话事人>
</档案>
</机密档案>

<骨干成员 id="大D">
<年龄>36</年龄>
</骨干成员>
<骨干成员 id="邓伯">
<年龄>66</年龄>
</骨干成员>
</黑社会>

我的XSL
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" omit-xml-declaration="yes" indent="yes"/>

<xsl:template match="/">
<黑社会>
<xsl:apply-templates></xsl:apply-templates>
</黑社会>
</xsl:template>

<xsl:template match="骨干成员">
<xsl:element name="骨干" >
<xsl:attribute name = "id">
<xsl:value-of select="@id"/>
</xsl:attribute>
<xsl:copy-of select="年龄"></xsl:copy-of>
<xsl:copy-of select="//档案[@id='{@id}']/三围"></xsl:copy-of>
<xsl:copy-of select="//档案[@id='{@id}']/话事人"></xsl:copy-of>
</xsl:element>
</xsl:template>
</xsl:stylesheet>

目标xml文件
<黑社会>
<骨干 id="大D">
<年龄>36</年龄>
<三围>25</三围>
<三围>26</三围>
<话事人>no</话事人>
</骨干成员>
<骨干 id="邓伯">
<年龄>36</年龄>
<三围>33</三围>
<三围>36</三围>
<话事人>yes</话事人>
</骨干成员>
</黑社会>

问题
<xsl:copy-of select="//档案[@id='{@id}']/三围"></xsl:copy-of>
<xsl:copy-of select="//档案[@id='{@id}']/话事人"></xsl:copy-of>
两句应该怎么写
...全文
185 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
cds27 2006-06-01
  • 打赏
  • 举报
回复
<xsl:variable name="id" select="@id"/>
<xsl:copy-of select="//档案[@id=$id]/三围"/>
<xsl:copy-of select="//档案[@id=$id]/话事人"/>
yxceo 2006-06-01
  • 打赏
  • 举报
回复
确实可以哦!明白了!多谢CDS27..接分

8,906

社区成员

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

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