给定一个包含元素 a、b、c 和 d 的 xml 文件,是否可以编写一个仅更改元素“c”并盲目传递所有其他元素的 XSLT?
例如:
<?xml version="1.0" encoding="UTF-8"?>
<Person>
<a>pass me blindly</a>
<b>pass me blindly</b>
<c>I need XSLT to convert me</c>
<d>pass me blindly</d>
</Person>
是否可以有一个 XSLT 来转换“c”,但所有其他元素都按源中的原样传递?
我最终会得到:
<?xml version="1.0" encoding="UTF-8"?>
<Person>
<a>pass me blindly</a>
<b>pass me blindly</b>
<c>I've been CONVERTED!</c>
<d>pass me blindly</d>
</Person>
是的,我的 XSLT 知识水平有限。
最佳答案
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<?xml-stylesheet type="text/xml" href=".\XSLTFile1.xslt"?>
<Person >
<a>pass me blindly</a>
<b>pass me blindly</b>
<c>I need XSLT to convert me</c>
<d>pass me blindly</d>
</Person>
以下 XSL 转换模板将为您提供所需的结果
<?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" version="1.0" encoding="UTF-8" indent="yes" omit-xml-declaration="yes" />
<xsl:template match="xsl:stylesheet" />
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="c">
<c>I've been CONVERTED!</c>
</xsl:template>
</xsl:stylesheet>
关于xml - XSLT:是否可以盲目地传递大多数元素但转换特定元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52413601/