我从来没有对XSLT做过任何事情,我需要编写一个XSLT脚本或其他一些脚本来为我们正在FTP到某个位置的XML文件添加标题和预告片。
我该怎么做?
答案 0 :(得分:5)
创建示例输入XML文件:
<root>
<header>This header text</header>
<body>This is body text.</body>
</root>
运行身份转换,
<?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" indent="yes"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
并确保生成与输入XML相同的XML:
<root>
<header>This header text</header>
<body>This is body text.</body>
</root>
然后添加另一个模板以区别对待body
<?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" indent="yes"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<!-- New template for body element -->
<xsl:template match="body">
<!-- Copy body as-is like in the default identity template -->
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
<!-- Do something new here: Add a footer element -->
<footer>This is new footer text</footer>
</xsl:template>
</xsl:stylesheet>
运行新的XSLT以生成包含页脚的新XML输出 这次:
<root>
<header>This header text</header>
<body>This is body text.</body>
<footer>This is new footer text</footer>
</root>
推荐的XSLT资源