我有两个xml文件:
<m2>
<header>
<to>ggg</to>
<from>aaa</from>
<id>11</id>
<name>gd</name>
<mtype>me</mtype>
</header>
<body>some text</body>
</m2>
2
<m2>
<header>
<desc>
<to>ggg</to>
<from>aaa</from>
</desc>
<id>11</id>
<name>gd</name>
<mtype>nothing</mtype>
</header>
<body>some text</body>
</m2>
从第一个xml转换为第二个xml的xslt文件是什么? xslt需要将mtype的值从“me”转换为“some text” 并将“to”和“from”元素插入“desc”元素。
答案 0 :(得分:2)
此转化:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="to">
<desc>
<xsl:copy-of select=".|../from"/>
</desc>
</xsl:template>
<xsl:template match="mtype/text()">nothing</xsl:template>
<xsl:template match="from"/>
</xsl:stylesheet>
应用提供的XML文档时,从图片中恢复(再也不要这样做了!):
<m2>
<header>
<to>ggg</to>
<from>aaa</from>
<id>11</id>
<name>gd</name>
<mtype>me</mtype>
</header>
<body>some text</body>
</m2>
产生想要的结果:
<m2>
<header>
<desc>
<to>ggg</to>
<from>aaa</from>
</desc>
<id>11</id>
<name>gd</name>
<mtype>nothing</mtype>
</header>
<body>some text</body>
</m2>
解释:简单应用身份规则设计模式。使用和覆盖标识模板是最基本和最强大的XSLT设计模式。
答案 1 :(得分:0)
这里有很多教程;只需在“XSLT教程”上进行网络搜索。这是其中一个网站: