我有一个像这样的XML文件,
<XML>
<article article-type="research">
<article-meta>
<abstract>
<p> lorisum......</p>
</abstract>
<abstract abstract-type="summary">
<p>lorisum summary</p>
</abstract>
</article-meta>
<body>
<sec>
<p>
......
</p>
</sec>
<sec sec-type="clinical">
<p> clinical test</p>
</sec>
</body>
</article>
<XML>问题是如何将临床sec移到xslt的未类型化摘要中?
发布于 2014-11-22 22:32:25
你可以像这样移动临床秒:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="/">
<xsl:copy>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="abstract[not(@abstract-type)]">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
<xsl:copy-of select="//sec[@sec-type='clinical']"/>
</xsl:copy>
</xsl:template>
<xsl:template match="sec[@sec-type='clinical']"/>
</xsl:stylesheet>输出:
<XML>
<article article-type="research">
<article-meta>
<abstract>
<p> lorisum......</p>
<sec sec-type="clinical">
<p> clinical test</p>
</sec>
</abstract>
<abstract abstract-type="summary">
<p>lorisum summary</p>
</abstract>
</article-meta>
<body>
<sec>
<p>
......
</p>
</sec>
</body>
</article>
</XML>模板只复制原始输入XML中的所有内容。匹配sec[@sec-type='clinical']的模板是空的,因此本节将从此副本中删除。与抽象匹配的模板没有抽象类型属性abstract[not(@abstract-type)] -复制抽象并添加sec[@sec-type='clinical']副本。
https://stackoverflow.com/questions/27083159
复制相似问题